Talk:Ones' complement/Archive 1

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia
Archive 1

Comment

The entire discussion on binary number systems seems muddled and in need of some organizing and better descriptions of things not 2's complement. This article is intended as a start on that effort. If it passes initial muster I'll continue with cleaning and organizing a couple of closely related pages.

KentOlsen (talk) 22:14, 28 January 2011 (UTC)

One thing that will help it pass initial muster is a quality source that describes the concept. See WP:Reliable Sources for a long and confusing description of what we consider a good source. If you've got that, keep crackin. (p.S. I'm moving this page to conform with the naming guidelines - WP:MOS) The Interior(Talk) 00:44, 29 January 2011 (UTC)
Here's my 2c's worth:
  1. Yes, definitely needs reliable sources - Wikipedia is not the place to write unsourced essays.
  2. According to signed number representations and a lengthy discussion on its talk page, the correct term is "ones' complement", not "one's complement".
  3. The Basics section seems to be plain wrong; surely the whole point of ones' complement is that it replaces subtraction with additon i.e. you do not need to subtract 19, because you add the ones' complement representation of -19 instead.
At the moment, I think that the ones' complement section in the signed number representations article is clearer, more concise and more accurate than this essay. Gandalf61 (talk) 17:09, 30 January 2011 (UTC)

All moved back

THis was the text I found inside this page:

This should be the primary article for ones' complement and the "one's complement" should redirect here. The correct "apostrophe after the s" is authoritative from Knuth's TAOCP volume 2 (where the explanation as to why this is so exists) and ISO C99 et al.
However, while I've edited the articles themselves, I'm not confident enough to do the redirection stuff.

Not sure who wrote it. Never mind. I have moved everything back into here, by:

a) Renaming "One's complement" to "One's Complement"
b) Copying everything from "Ones' Complement" into "Ones' complement"
c) Replacing the text in "Ones' Complement" with a redirect to "Ones' complement"
d) Redirecting all the existing redirects to "Ones' complement"
e) Finally, doing this talk page. --Matt Westwood 06:38, 5 November 2011 (UTC)

Requested move

The following discussion is an archived discussion of a requested move. Please do not modify it. Subsequent comments should be made in a new section on the talk page. No further edits should be made to this section.

The result of the move request was: Closed early in favor of centralizing discussion at the RfC. Cybercobra (talk) 04:58, 6 November 2011 (UTC)


Ones' complementOne's complement – The spelling issue merits broader discussion. Keep WP:COMMONNAME in mind. --Cybercobra (talk) 09:40, 5 November 2011 (UTC)

And if you actually look at the plurals the apostrophe was ignored in most of them so it actually found "ones complement" Dmcq (talk) 10:01, 5 November 2011 (UTC)
The above discussion is preserved as an archive of a requested move. Please do not modify it. Subsequent comments should be made in a new section on this talk page. No further edits should be made to this section.

digit complement

Should there be a general article on the radix independent digit complement system? That is, nines' complement for decimal values, and (radix-1) complement for any other radix? Many seem to redirect to "method of complements", but I am not so sure that is best. Gah4 (talk) 21:23, 14 September 2018 (UTC)

Complementing Subtractor

Hello,

is it possible for the author to clarify what do you mean by, and quoting, "A complementing subtractor will produce −0 only when both operands are −0."? My question is beause, for me, based on the example of the four subtractions operations on +0 and -0, the result -0 only takes place when operand 1 is +0 (0000 0000) and operand 2 is -0 (1111 1111), and not when both operands are -0 (1111 1111).

Thank you very much for you time.

Best regards,

LuisFilipeM (talk) 16:24, 26 August 2012 (UTC)

The usual explanation for complement arithmetic (radix or digit) is that you do subtraction by adding the complement. That is, you build an adder in the appropriate radix, then complement one of the operands. At least in the ones' complement case, it is about as easy to build a subtractor, and do addition adding the complement. If you do that, you can arrange things such that with no operands of -0, you never get a -0 out. (That is, without special recomplementing logic, which is sometimes used.). Note also that one way to build a sign-magnitude machine is to convert to/from ones' complement with appropriate XOR logic. Gah4 (talk) 21:43, 6 November 2018 (UTC)

709 representation.

The statement on the 709 and its derivatives is not exactly true. They used 1's complement in 36 and 72 bit quantities, but 2's complement in 15 bits. Coders had to be aware of this fact in using the AXC instruction on negative quantities. — Preceding unsigned comment added by 71.175.142.69 (talk) 13:52, 28 July 2011 (UTC)

709 is sign-magnitude. As I understand it, though, index registers are two's complement. Fortran, at least, uses only 15 bit (plus sign) integers. I think that means that 36 and 72 bit integers are done in software. Gah4 (talk) 06:09, 14 April 2019 (UTC)

testing

The article says that one must test in software for -0 to equal +0. As well as I know, all ones' complement computers either do this in hardware, or, as one section shows, use subtraction logic to avoid -0. Specifically, with the appropriate logic, and no operands of -0, the result will not be -0. It would be nice to know which machines do it which way. This will complicate some C programs that test bit patterns. Gah4 (talk) 06:18, 14 April 2019 (UTC)

Modulo

Could someone add some cross-referencing information about the relations of one's complement and two's complement to the underlying mathematical concept of ?modulo arithmetic. I remember reading something about 2's complement being a pure form of this, but 1's complement being a slightly offset/modified form of this. Thanks. — Preceding unsigned comment added by 80.189.81.65 (talk) 23:17, 23 October 2019 (UTC)

N bit two's complement is modulo (if you ignore the sign), and ones' complement is module . I don't know about pure or not pure. (For extra fun, check out C compilers on ones' complement machines.) Gah4 (talk) 08:58, 25 October 2019 (UTC)

Confusing lede

I don't know how to interpret However, unlike two's complement, these numbers have not seen widespread use because of issues such as the offset of −1, My first thought was that it referred to the range of negative numbers, but ranges are symmetrical in ones' complement and asymmetrical in two's complement. My second thought was that it referred to end around carry, but that seems a bit stretched. So what does it mean?

The sentence Many early computers, ... continued to use ones' complement until the late 1980s, and the descendants of the UNIVAC 1107 (the UNIVAC 1100/2200 series) still do, but the majority of modern computers use two's complement. seems to imply that the main competitor to ones' complement was twos's complement, but in fact sign magnitudes was dominant until System/360 came along and the industry started following IBM's lead and switching to two's complement.

Finally, the examples presented in the lede of "early" computers might lead a reader to assume that ones' complement originated in the 1960, when the Atlas[a] was delivered in 1950. — Preceding unsigned comment added by Chatul (talkcontribs) 21:00, 12 May 2020 (UTC (UTC)

My guess is that, besides the range, all the negative numbers are offset by one (or -1) from the two's complement values. But I agree that it isn't especially obvious either way. IBM kept with sign-magnitude through descendants of the 701, I always suspect for back compatibility reasons. As well as I know it, many others didn't, but if IBM was dominant, that would make it dominant. Looking back from now, it is even more surprising how many early machines used decimal arithmetic. Is it really IBM that caused the change to two's complement? I suppose I believe that IBM led the change to eight bit byte addressability, but I am less sure about two's complement. Gah4 (talk) 22:25, 12 May 2020 (UTC)
I also didn't like the lede; I had to read it a few times to try to understand what it was saying. It introduced terminology and then didn't use it consistently - specifically, it seemed to entangle "one's complement" (the operation), "one's complement" (the value), and "one's complement" (the numerical system), which is, well, really understandable but I think it's not great for a lede. So I tried to rewrite it without losing much of it, but the "off by -1 but otherwise does binary arithmetic things except where it doesn't" sentence seemed very hard to cram in where it was; maybe the sentences about older computers should mention that there's a reason 2's complement became more popular? Hm, talking it out like this, I think I'm going to take a swing at that. I think the lede can best be improved by being consistent about a one's complement value, the one's complement operation, and one's complement notation, and refrain from trying to compare it to other numeric representation systems until its "in and of itself" explanation is down. There's certainly more room for improvement, though. Kistaro Windrider (talk) 01:25, 31 January 2021 (UTC)
Giving a reason that 2's complement became more popular is WP:OR WP:RS absent a WP:RS, and the presence of -0 in sign-magnitude and 1s' complement is no worse than the asymetry in 2's complement, but it is certainly appropriate to mention that the shift began with the advent of the IBM System/360. There may be some difference in the complexity of adders, although I suspect that there are issues with all three.
The list of "early" machines really should include more early machines, e.g., UNIVAC 1101, CDC 160. Shmuel (Seymour J.) Metz Username:Chatul (talk) 06:35, 31 January 2021 (UTC)
(Presumably "is WP:RS absent a WP:RS" was supposed to be "is WP:OR absent a WP:RS".) Guy Harris (talk) 07:13, 31 January 2021 (UTC)
I have no objections to removing this from the lede. I wrote it in an attempt to save a concept previously in the lede, knowing I was replacing an approach that had no flow with an approach that had no references. I considered removing it, but felt like a major rewrite was likely to get reverted outright if it removed a concept from the lede. I don't think it's bad content for the lede presented in some summary form, but it's the wrong content for Wikipedia if it doesn't have a source. retrocomputing.stackexchange, which is obviously not a WP:RS, has https://retrocomputing.stackexchange.com/a/7099 but it itself has no citations, so it's a dead end too.Kistaro Windrider (talk) 05:22, 3 February 2021 (UTC)
It seems now to be lost in history. Some early computers used sign-magnitude, I suspect because they expected it to be easier for people to understand, not because it was easier to build hardware. (As well as I know, the easiest way to build a sign-magnitude adder is to convert to ones' complement, add, then convert back.) In any case, CDC built ones' complement machines, presumably because Cray believed that it is faster. (I believe that there is a WP:RS for that, but didn't look.) We are now so used to two's complement, but historically at seems that it wasn't so obvious. Gah4 (talk) 12:36, 3 February 2021 (UTC)
The 2's complement EDSAC was in 1949. The 1s's complement ERA Atlas, predecessor to the UNIVAC 1101, was in 1950. The IAS machine was in 1952.
I looked at the article that user:Kistaro windrider cited and found it dubious; certainly I never saw a machine that had two sets of lights for displaying the same register, depending on sign. Every binary computer that I've seen has displayed registers bit for bit. Shmuel (Seymour J.) Metz Username:Chatul (talk) 15:38, 3 February 2021 (UTC)


Notes

  1. ^ The machine later known as the UNIVAC 1101, not the Ferranti Atlas.

Isn't this supposed to be ones' complement (with the apostrophe AFTER the "s")?

Both Knuth's TAOCP volume 2 and the ISO C standards have it that way, with TAOCP giving the rationale behind it (and why the rule is different for two's complement). Actually, I'm just going to go ahead and change that since Knuth and ISO seem to me to be authoratative. I don't know how to change the page title however, so someone else will have to look into that. It will be a good test on how Wikipedia works :-) — Preceding unsigned comment added by 175.38.161.199 (talk) 14:43, 4 November 2011 (UTC)

I'm with you. Ones' is the complement of a plurality of ones, two's complement is the complement of a singular two. There's a debate about this on the Wikipedia talk:WikiProject Mathematics page where there's a call for more citations for further confirmation. --Matt Westwood 20:18, 4 November 2011 (UTC)
Oh no, I don't need any sources, just someone knowledgeable about the topic. We should move it. Thanks for answering. The Interior - (Talk) 02:34, 5 November 2011 (UTC)
The debate on the Wikipedia talk:WikiProject Mathematics page is now at Wikipedia talk:WikiProject Mathematics/Archive/2011/Nov#Apostrophe position in "one's complement". Guy Harris (talk) 18:02, 6 November 2018 (UTC)
I'm only an expert in that I was a professional programmer of LINC, LINC-8, and PDP-12 computers, which were at least in part one's complement computers. I remember that none of the literature associated with these computers used "ones' complement" and all of it used "one's complement". I cannot claim my memory is perfect. While none of the literature is extant, so no citation is possible now, references did exist during the time these computers were sold: the programming manuals. If I ever find a manual in a box in my basement, I'll revisit this page. David Spector (talk) 22:20, 24 July 2013 (UTC)
Some literature is available here for the LINC, here for the LINC-8 and here for the PDP-12. wneo (talk) 11:31, 6 November 2018 (UTC)
"Some literature" as in "a brochure from DEC about the LINC", which says "l's complement", which I guess is equivalent to "one's complement". Guy Harris (talk) 18:00, 6 November 2018 (UTC)
The 1961 PDP-1 Handbook also says "1's complement"; the 1963 PDP-4 Programming Manual speaks of "one's or two's complement arithmetic"; and the 1971 PDP-12 System Reference Manual speaks of "one's complement", "two's complement", and "2's complement" arithmetic.
On the other hand, the UNIVAC 1108 System Description from 1970 speaks of "ones complement", with no apostrophe anywhere. However, the earlier 1108 Processor and Storage Reference Manual from 1966 says "one's complement" and "l's complement" but also says "ones complement" with no apostrophe. Guy Harris (talk) 18:13, 6 November 2018 (UTC)

From Method_of_complements#Numeric_complements, the apostrophe placement is suggested by Knuth, and is relatively recent in the timeline of computation. But that article notes that in many cases the radix is known, the distinction isn't needed, and people aren't always good at getting it right. Even though Knuth has been around close to forever, many computer manuals are old enough to not know this convention. Articles should get it right, unless there is a historical reason to be different. (Such as a direct quote.) I suppose I don't worry about it in talk pages, which are less formal. The distinction comes from digit complement subtracting each digit from (radix-1), such that it is plural. I suspect that there might be some that use the plural but non-possessive form, especially in older literature. Gah4 (talk) 21:32, 6 November 2018 (UTC)

It occurs to me that there is no confusion in this case, as there is no radix (one's) complement. Otherwise the distinction between (what I believe Knuth calls) digit complement and radix complement isn't so obvious. Even so, I suspect it is rarely a problem. Are there any (decimal) nines' complement machines? Gah4 (talk) 21:27, 3 February 2021 (UTC)

Traductions

I'm a newbie with wikipedia; but there are others traductions of this page linked between themselves, but not with the english one. Who could resolve it? Mtorrecilla (talk) 11:14, 26 August 2011 (UTC)

(Presumably meaning "translations".) The Wikidata entry for this page has, as of 3 February 2020, several non-English "ones' complement" pages listed, so at least some of it is fixed. Feel free to add pages that they've missed. (I say "non-English "ones' complement" pages" because they're not necessarily just translations of the English-language page.) Guy Harris (talk) 22:45, 3 February 2021 (UTC)