0xtalk
Speaking in Hexadecimal
Source: Wikipedia

Hexadecimal is such a useful representation. If for no other reason, Hex is awesome because every hex- digit (I can't stand the word nibble) expands into an integer number of bits, allowing it to faithfully represent binary based design decision. This is great when writing code or design docs, but its usefulness ends there. Unfortunately, there is no universally agreed upon way of speaking hex aloud and saying the digits one by one gets obnoxious for more than 4 hex-digits. Even if most of the digits are zeros, attempting to say 0xFF000000 as, "F F and 6 six zeros," could quickly turn into a, "who's on first?" situation. The alternative is to speak the numbers as decimal, but that often sacrifices the reason why a number was chosen in the first place. The number 0xF000 clearly has its upper 4 bits set, that's completely lost when stating the number as 61,440. It doesn't have to be this way. 

It's time to standardize how hexadecimal is spoken, and here is my suggestion for how it should be done. For now, let's call it 0xalk /äks-tôk/. The first four places are very similar to decimal, with one exception. The tens place is now called the hex place. The other three places are the same, thousands, hundreds, and ones.


The example number above is spoken as F-thousand four-hundred and A-hex-five. An alternative pronunciation could be F-four-hundred and A-hex-five. The last byte could also be simplified to just A-five. Most two hex-digit numbers are still spoken the same as their decimal counterparts. For example, the hex number 0x85 would still be spoken as eighty-five, optionally as eight-hex five or eighty-hex-five. The only exception would be when the hex place has a one. Speaking the word ten is forbidden in 0xtalk, so one-zero is 'hex'. The other two-digit numbers that start with one can retain their original phonetics, but saying hex-one, hex-two, hex-three is preferred. 

Numbers larger than four hex-digits get broken up into groups of four, similar to how decimal is broken into groups of three. Thousand is already in use, so the first group will be million. 
The larger example number above is spoken as A-thousand six-hundred and forty-hex-million, eight- thousand E-hundred and seventy-hex-B. Following the alternative rules, it could be pronounced A-six-hundred and forty-million, eight-hex hundred and seven-B. From this point on, each group is named the same as the next decimal group, billion, trillion, and so forth. 

One drawback, which is inherit to hexadecimal itself, is that multiples of 1 kibibyte, 2^10, or 1024, aren't cleanly represented. It's still 0x400. One mebibyte is a little better, 0x10,000, but it still doesn't align nicely with groups of 4. This isn't a huge issue though, as it only presents when converting from one unit to another. Regardless, my hope is that the set of pronunciation rules laid out by 0xtalk will lead to less, "who's on first," and more clear communication.


0xtalk examples:
Hexadecimal
0xTalk
0x0, 0x1, …, 0xF
zero, one, …, F
0x10
hex (ten is forbidden)
0x11, 0x12, …, 0x1F
eleven OR hex-one, twelve OR hex-two, …, hex-F
0x24
twenty-(hex)-four
0xA8
A-(hex)-eight
0xB8E
B-hundred and eighty-(hex)-E
0x545
Five-hundred and forty-(hex)-five
0x3210
Three-thousand two-hundred and hex
OR thirty-two hundred and hex
0xA000
A-thousand
0xF,8000
F-million eight thousand
0x4534,8972
four-thousand five-hundred and thirty-(hex)-four million, eight-thousand nine-hundred and seventy-(hex)-two
OR forty-five-hundred thirty-(hex)-four million, eighty-nine hundred and seventy-(hex)-two
0xE,0000,0000
E-trillion

Comments

Popular posts from this blog

Clothes Washer Broke Part II: Washing Machines are Gross

Clothes Washer Broke Part I: Time to Bust Out the Drill.