Octal has long been used to represent groups of three binary digits as single characters, and that system has the considerable merit of not requiring any digits other than those already familiar from decimal numbers. Unfortunately, the increasing use of 16-bit machines and other machines that have word lengths that are evenly divisible by four (but not by three) has led to the widespread adoption of hexadecimal.
Table 1 presents the digits of the hexadecimal alphabet.
Value |
Digit |
0 |
0 |
1 |
1 |
2 |
2 |
3 |
3 |
4 |
4 |
5 |
5 |
6 |
6 |
7 |
7 |
8 |
8 |
9 |
9 |
10 |
A |
11 |
B |
12 |
C |
13 |
D |
14 |
E |
15 |
F |
Table 1: The Hexadecimal Alphabet
The choice of alphabet is clearly arbitrary: On the exhaustion of the decimal digits, the first letters of the Latin alphabet are used in sequence for the remaining hexadecimal digits. An arbitrary alphabet may be acceptable on an interim or experimental basis. However, given the diminishing likelihood of a return to 18-bit computing, a review of this choice of alphabet is merited before its use, like that of the QWERTY keyboard, becomes too deeply established to permit the easy adoption of a more logical alternative.
One problem with the hexadecimal alphabet is well known: It contains two vowels, and numbers expressed in hexadecimal have been found to collide with words offensive to vegetarians and other groups.
Imposing a greater constraint on the solution space, however, is the difficulty of mentally converting a number expressed in hexadecimal to (or from) binary. Consider the hexadecimal digit 'D', for example. First, one must remember that 'D' represents a value of 13 -- and, while it may be easy to recall that 'F' is 15 with all bits set, for digits in the middle of the non-decimal range, such as 'C' and 'D', one may resort to counting ("A is ten, B is eleven, ..."). Next, one must subtract eight from that number to arrive at a number that is in the octal range. Thus, the benefit of representing one additional bit incurs the cost of two additional mental operations before one arrives at the position where the task that remains reduces to the difficulty of converting the remaining three digits to binary.
These mental steps are not difficult per se, since a child could do them, but if it is possible to avoid employing children, then it should be avoided. An appeal to the authority of cognitive psychology is perhaps also due here, in particular to the "seven plus or minus two" principle [
Miller] -- either because octal is within the upper end of that range (nine) and hexadecimal is not, or else because the difference in the size of the alphabets is greater than the lower end of that range (five). Either way, it is almost certainly relevant.
Various alternatives have already been suggested. Some of these are equally arbitrary, e.g., in selecting the last six letters of the Latin alphabet rather than the first six letters.
The scheme that comes closest to solving the main problem to date is described by Bruce A. Martin [
Martin] who proposes new characters for the entire octal alphabet. While his principal motivation is to distinguish hexadecimal numbers from decimals, the design of each character uses horizontal lines to directly represent the "ones" of the corresponding binary number, making mental translation to binary a trivial task.
Unfortunately for this and other proposals involving new symbols, proposals to change the US-ASCII character set [
USASCII] might no longer be accepted. Also, it seems unrealistic to expect keyboards or printer type elements (whether of the golf ball or daisy wheel kind) to be replaced to accommodate new character designs.