Bit, Nibble, Byte
Three words for three sizes, and none of them was inevitable. A byte was not always eight bits, a nibble is a joke that stuck, and the base a machine's programmers wrote in was decided by the machine, not by taste.
One byte, four notations
Hex groups them in fours. On a byte that comes out even, and each group is one hex digit. That group is a nibble.
Octal groups them in threes from the right. On a byte that leaves a ragged two on the end. Change the word size above and watch which base stops fitting.
- Binary
- 0100 1010
- Hex
- 4A
- Octal
- 112
- Decimal
- 74
- Signed
- +74
- BCD
- 4 ×
- ASCII
- J
Flip any bit and watch which notations move.
Where the three words came from
Bit is the oldest, and the only one of the three coined to shorten something people were already writing out. John Tukey contracted "binary digit" to "bit" in a Bell Labs memo on 9 January 1947. Claude Shannon put it into the literature the following year in A Mathematical Theory of Communication, and credited Tukey for it there.
Byte was coined by Werner Buchholz in 1956, during the design of the IBM 7030, the machine everyone called Stretch. He spelled it with a y deliberately, so that a typo could not turn it into "bit". On Stretch a byte was not eight bits: it was whatever you addressed, anywhere from one to eight.
Nibble is a pun. A byte sounds like a bite, so half of one is a nibble. It is credited to David Benson around 1958 and does not show up in print much before the mid-1970s. It survived because it turned out to name something real: four bits is exactly one hexadecimal digit.
Why this comes after Shannon on the timeline
The order looks wrong. Bitwise sits at 1937, ten years earlier, and it is about pushing bits around. How can the operations predate the word for the thing they operate on?
Because they did. Shannon showed in 1937 that a relay circuit is a piece of algebra, and engineers spent the next decade building machines that added, shifted and masked binary digits. They just wrote out binary digit every time, or said "pulse", or "position", or nothing at all.
Names arrive late, when someone gets tired of the long version or needs to draw a line that was not there before. Tukey was tired of writing binary digit. Buchholz needed a word for however many bits an instruction reached at once, and that only became a question when Stretch let each instruction pick a different number. Nobody wanted a word for four bits until hexadecimal made four bits worth exactly one character.
So the gap between 1937 and 1947 is not a gap in the engineering. It is the gap between doing something and finding it worth naming.
Why eight
Eight was an argument, not a discovery. IBM's SPREAD task force recommended the eight-bit byte in December 1961, and it was settled when System/360 was announced on 7 April 1964. Fred Brooks, its architect, pushed for eight against internal pressure to make it four or six, which would have been cheaper.
The case for eight was partly that ASCII had just landed on seven bits. Eight held a character with one bit left over, and it made a byte hold 256 distinct values, which is enough for a character set with room to grow. Six would not have. Every machine since has inherited that argument.
Why your machine picked a base
An octal digit is three bits. A hex digit is four. So a machine whose word size divides by three reads naturally in octal, and a machine built out of eight-bit bytes reads naturally in hex. That is the whole rule, and it explains a split that looks like tribal preference from the outside.
DEC's PDP-8 had a 12-bit word and its programmers wrote octal, because twelve is four octal digits exactly. The PDP-10's 36-bit word is twelve octal digits exactly. System/360 addressed eight-bit bytes, and two hex digits are exactly one byte, so its programmers wrote hex. Hex won in the end because the byte won.
The rule is only divisibility, and the switcher above is set up to prove it rather than to flatter it. Six bits and eighteen bits divide by three and not by four, so hex is the ragged one there. Twelve divides by both, so a PDP-8 word reads cleanly either way: four octal digits or three hex digits. Octal did not suit "old machines" and hex "new" ones; each suited the widths it divided.
The budget this page names is the one Morse, Baudot and the punch card had all been paying for a century without a word for it. Eight is where it settled.
What is real here, and what is not
The arithmetic is real, and there is only one of it
Every readout is computed from a single integer on every change. There is no lookup table of pre-rendered answers, which is why the four notations cannot disagree with each other. The groupings are drawn from the same width the value uses, so the ragged octal group is a consequence of the arithmetic rather than a picture of one.
The word sizes are chosen to be awkward
Six, eight, twelve and eighteen are not a sample of famous machines; they are the four cases the rule produces. Eight and eighteen are ragged in one base each, twelve is ragged in neither, and six is ragged in hex, which is the case usually left out. A widget offering only 8 and 12 would appear to show that octal belongs to older machines, and that is not what the arithmetic says. Thirty-six bits is omitted for space, and it behaves like twelve: even in both.
BCD is shown as a reading, not as arithmetic
Each nibble is read as a decimal digit, and 1010 through 1111 are marked with a cross because they are not digits. A real machine doing BCD arithmetic also carries at ten rather than sixteen, which this page does not do; it only decodes. The reason BCD is here at all is that the nibble was named for it: four bits is the storage one BCD digit needs.
The dates are the contested part
1947 for "bit" and 1964 for the eight-bit byte are firm. 1956 for "byte" is well attested but sources differ on the month. The 1958 attribution for "nibble" rests on one person's recollection and the printed record only starts in the 1970s, so treat it as the best available story rather than as a settled date.
ASCII above 127 is not ASCII
ASCII is a seven-bit set, so any value from 128 up is outside it and the readout says so rather than guessing at a character. What those values mean depends on a code page, and picking one silently is exactly the kind of thing that makes text turn to mojibake.
Sources
- Claude Shannon, A Mathematical Theory of Communication, 1948 — the paper itself, not an article about it. The coinage is one sentence of it: “If the base 2 is used the resulting units may be called binary digits, or more briefly bits, a word suggested by J. W. Tukey.” Note what the paper does not say: it credits Tukey and gives no date, so the 9 January 1947 above is dated from elsewhere, not from here. This is a copy hosted on a university page; the Bell System Technical Journal's own is behind a publisher.
- Werner Buchholz coins the term "byte", History of Information, on the 1956 Stretch design and the deliberate respelling.
- IBM 7030 Stretch, on the variable-length byte that preceded the fixed eight.
- IBM System/360 and its architecture, on the 7 April 1964 announcement and byte addressing.
- Nibble, on the pun, the Benson attribution, and the hexadecimal correspondence.
- Douglas W. Jones's PDP-8 FAQ, University of Iowa, on why a 12-bit word is written in octal.
- PDP-10, on the 36-bit word and its twelve octal digits.