Binary is commonly associated with computers these days, but the modern binary numeral system dates back to 1679, with its roots going back much earlier yet.
It was in 1824 when a blind teenager, Louis Braille, applied binary to create a system for reading and writing for the blind and visually impaired. That system of course is the one that bares his name. He did this more than 100 years before Alan Turing proposed his Turing Machine.
Binary data is mostly meaningless by itself. In order to interpret it, a reader needs a context to frame it in. In the case of braille, this context defines a collection of symbols that map to our alphabet, numbers, and punctuation. While traditionally these symbols are represented through raised bumps on paper, which a blind person is able to feel, we can visualize it using dots. We see this in Figure 1, which is the letter c in braille.
If Figure 1 were written on paper using braille, the solid black dots would be raised bumps, while the white circles would be smooth. Those are the only two possible states for a dot, making them binary. In addition, each dot is assigned a numerical position, they are numbered 1-6. Figure 2 shows the numerical position of each dot.
So looking back at Figure 1, we would say that dots 1 and 4 are raised, 2, 3, 5, and 6 are not. If we were to replace the solid black dots with 1’s, the white dots 0’s, and then flatten them out to read left to right, we are left with the following:
Which looks a lot like modern computer binary. The one major difference is that computers architectures today group bits into collections of 8 (1 byte), while braille uses a 6 bit structure. This is an import piece of context when reading binary. It tells us how many bits to read at one time. If you grab too few or to many bits, you will end up with the wrong numeric value, and the data will be garbled.
Since braille symbols have 6 binary values, each with 2 possible values, we have 64 unique braille symbols. (2*2*2*2*2*2) This doesn’t quite give us enough unique values to represent the English language in a one-to-one mapping. The alphabet has 26 letters, double that to account for upper and lower case, there are 10 numbers (0-9), and many punctuation marks. And other languages can have even larger alphabets. To account for this braille introduces modifiers.
Braille modifiers act much like the shift keys on your computer keyboard. In Figure 3 we see two braille symbols. The first is the uppercase modifier, the second one is the symbol for the letter c. Combined they create the uppercase C. In Figure 4 we see another modifier preceding the letter c. This time it is the number modifier, and it reads as a single value, the number 3 and not c or C.
Once we know the basic premise behind braille, we can very easily map each of the braille symbols to their numeric values. That’s what I have done in the following demo, which lets you convert between binary, text, and braille.
Modern binary hasn’t changed since its publication in 1679. Yet by giving it context, Louis Braille, a blind teenager, created braille in 1824. Today it remains the fundamental building block in our smart phones, High Definition TVs, and even our electric coffee makers. Binary is awesome. Binary is cool.