Binary Code Explained: How to Read It by Hand
Binary looks like a wall of ones and zeros, and then you learn one small trick and the wall falls over. This guide teaches you to read binary yourself, no tool needed, in about ten minutes. And when you would rather not do it by hand, our binary translator does the whole thing instantly, in your browser.
The one idea underneath it all
Computers store everything as switches that are either off or on: 0 or 1. One switch on its own can only say two things. String eight of them together and you get 256 combinations, which is enough to give every letter, digit and symbol on your keyboard its own pattern. That group of eight is a byte, and one byte is one character.
So the message 01001000 01101001 is two bytes. Two bytes, two characters. It says "Hi". By the end of this page you will be able to check that yourself.
Reading a byte: it is just place value
You already read numbers this way in decimal. In 352, the 3 means three hundreds, the 5 means five tens, the 2 means two ones. Each place is worth ten times the one to its right.
Binary works identically, except each place is worth two times the one to its right. From right to left, the eight places in a byte are worth 1, 2, 4, 8, 16, 32, 64 and 128. To read a byte, add up the values of the places that hold a 1, and ignore the places that hold a 0.
Take 01001000. There is a 1 in the 64 place and a 1 in the 8 place. 64 + 8 = 72. That is the number hiding in the byte.
From number to letter: the ASCII table
The last step is a lookup. Decades ago the computing world agreed on a table called ASCII that assigns a character to each number. Capital A is 65, capital B is 66 and so on up the alphabet, lowercase a starts at 97, and the digits 0 to 9 run from 48 to 57.
Our byte came to 72. Count up from A at 65: 65 is A, 66 is B, 67 C, 68 D, 69 E, 70 F, 71 G, 72 H. The byte 01001000 is a capital H.
Try the second byte from earlier, 01101001. Ones sit in the 64, 32, 8 and 1 places. 64 + 32 + 8 + 1 = 105. Lowercase letters start with a at 97, so 105 is eight letters in: i. Put the two together and you have "Hi".
A shortcut worth knowing
Most text bytes start with 010 or 011. The pattern 010 means a capital letter and 011 means lowercase, so you can often tell the case of a message at a glance before decoding a single byte. Spaces are easy to spot too: a space is 32, which is 00100000, a lonely 1 with seven zeros around it.
Writing binary yourself
Going the other way is the same steps in reverse. Pick your character, find its ASCII number, then break the number into powers of two, largest first. Take W, which is 87. Does 128 fit? No, write 0. Does 64? Yes, write 1 and carry 87 - 64 = 23. 32? No, 0. 16? Yes, 1, leaving 7. 8? No, 0. 4? Yes, leaving 3. 2? Yes, leaving 1. 1? Yes. Result: 01010111.
It is slow by hand, which is honestly part of the fun, and it is why the translator exists for the days when you have a whole sentence to convert. It auto-detects direction, so you can paste either text or binary and it works out which way you are going.
Beyond ASCII
ASCII covers English letters, digits and common symbols, and stops there. Emoji, accented letters and other alphabets use a bigger system called Unicode, usually stored in a format called UTF-8 that uses more than one byte per character. If you are curious how that works, we cover it in ASCII, Unicode and UTF-8 explained simply.
Frequently asked questions
What does 01000001 mean?
It has a 1 in the 64 place and a 1 in the 1 place, so it is 65, which is capital A in ASCII.
Why eight bits?
Eight bits give 256 combinations, comfortably enough for English letters in both cases, digits, punctuation and control codes. Eight also became the standard hardware word size, and it stuck.
How do I convert a whole sentence?
One byte per character including spaces. By hand that gets tedious fast, so paste the sentence into the binary translator and it converts the lot instantly, in either direction.
Is binary the same as hexadecimal?
No, but they are close cousins. Hex is a compact way of writing the same bytes: one hex digit stands for four bits, so a byte is two hex characters. Our hex to text converter handles that side.