Two's Complement

The recipe is taught as a rule about negatives: flip every bit and add one. That is true and it hides the reason. Two's complement is arithmetic modulo 256, and the consequence is that a byte is not a signed number or an unsigned number, it is eight bits that can be read either way. The adder underneath has no opinion. There is no signed mode to switch into, because the same addition is already correct for both readings.

One pattern, two numbers, and one addition that suits both

A, click any bit to flip it

B

A + B, the same addition either way

The top bit is drawn with a dashed edge because it is the only one the two readings disagree about. Every other bit is worth the same in both.

These ran in this browser when the page loaded. The last row is the one worth reading twice: the carry out of the top bit and signed overflow are different questions, and they disagree on about half of all pairs.

Each claim, whether it held, and the values behind it
claimheldmeasured
flipping the bits and adding one is the same as subtracting from 256yesall 256 values, 0 disagreements
one addition is correct read as unsigned and read as signedyes65,536 pairs, 0 unsigned and 0 signed wrong
the two readings of a pattern differ by 256 exactly when the top bit is setyes0 patterns disagree
exactly two values are their own negative, and one of them is not zeroyes0 and -128
the carry out of the top bit is not the same thing as signed overflowyes32,512 of 65,536 pairs where the two disagree

What is real here, and what is not

Eight bits, because a width has to be chosen

Everything here is modulo 256. The idea does not depend on 8: the same argument holds for any width, with 2 to the n in place of 256. What 8 does hide is that the choice of width is where overflow lives. A number that fits in 16 bits and not in 8 is not a different number, it is the same arithmetic against a different modulus.

The year is doubly sourced; the day is not

Two independent sources put the First Draft in 1945, and the chronology sorts it there. The precise date usually given, 30 June 1945, is not verified by either of them: the museum timeline gives only the year, and the scanned report has no text layer to read, so this page does not print a day. That is the second entry in this batch where the year held and the month turned out to be repetition.

This is the representation, not von Neumann's machine

The First Draft of a Report on the EDVAC, 30 June 1945, sets out the representation and the arithmetic that goes with it. It does not follow that the page models the EDVAC, which it does not: no memory, no delay lines, no instruction set. What is modelled is the property that made the representation win, which is that it needs no separate subtractor and no signed mode.

The carry and the overflow are different questions

The page prints both because they are easy to confuse and the confusion is expensive. The carry out of the top bit says the unsigned result did not fit. Signed overflow says the signed result did not fit. On 8 bits they disagree on 32,512 of the 65,536 possible pairs, and that count is measured in this browser at load rather than quoted from anywhere.

No sound

Nothing here has a duration, so there is nothing a sound could measure.

Sources