Skip to main content
PixelTools
All articles
Guides5 min readby the PixelTools team

How to Read Binary Code (Step by Step)

Learn to read binary code by hand: place values, ASCII letters, and why é or an emoji takes several bytes. Check your work with a free browser translator.

The short answer: split into bytes, add up the 1s

To read binary code, split it into groups of eight digits, add up the place value of every 1 in each group, and look that number up as a character. The groups are called bytes. So 01001000 is 72, which is the letter H, and 01101001 is 105, which is i. Together they spell "Hi". You do not need to memorize anything except eight place values and where the letters start. The rest of this guide shows each step with one real example you can check yourself.

Step 1: learn the eight place values

Each of the eight digits in a byte is worth a fixed amount, doubling from right to left: 128, 64, 32, 16, 8, 4, 2, 1. A 1 means "count this value" and a 0 means "skip it". Take 01001000. The 1s sit under 64 and 8, so the byte is 64 + 8 = 72. Take 01101001. The 1s sit under 64, 32, 8 and 1, so it is 64 + 32 + 8 + 1 = 105. Always write the eight values above the digits before you add. Most reading mistakes come from counting positions from the wrong end.

Step 2: turn each number into a character

Text uses the ASCII table, where capital A is 65 and lowercase a is 97. Counting up from there, 72 is H (A is 65, so H is the eighth letter) and 105 is i (a is 97, so i is the ninth). A shortcut worth knowing: bytes starting 010 are capital letters and bytes starting 011 are lowercase, so A is 01000001 and a is 01100001. The only difference is the 32 bit. A space is 32, which is 00100000, and digits 0 to 9 run from 48 to 57. Spot the first three digits and you already know the kind of character.

A full worked example: Hello

Take 01001000 01100101 01101100 01101100 01101111. The first byte is 64 + 8 = 72, which is H. The second is 64 + 32 + 4 + 1 = 101, which is e. The third and fourth are both 64 + 32 + 8 + 4 = 108, which is l, and the last is 64 + 32 + 8 + 4 + 2 + 1 = 111, which is o. Five bytes, five letters, "Hello". Notice the two identical groups in the middle: a repeated byte means a repeated letter, a handy sanity check when you decode a longer message by hand.

Why é or an emoji takes more than one byte

Plain English letters fit in one byte, but most other characters do not. Modern text uses UTF-8, which spends two to four bytes on anything outside basic ASCII. We ran the PixelTools translator to see it: é becomes two bytes, 11000011 10101001. The euro sign € becomes three, 11100010 10000010 10101100. A smiley emoji becomes four, 11110000 10011111 10011000 10000000. So if you read a byte on its own and it begins with 11 or 10, it is part of a longer character. Decode the whole group together, not one byte at a time.

Check your work with a translator and know its error messages

After reading by hand, paste the binary into the [Binary Translator](/binary-translator) and switch to Binary → Text. It decodes live in your browser, and nothing is uploaded. It also tells you what went wrong. One unbroken run like 0100100001101001 gets "binary with no separators", so add a space every eight digits. A group such as 0110100 is rejected as 7 bits, and a group containing a 2 is rejected as invalid binary. A lone byte like 10000000 fails because it is not valid UTF-8 on its own, usually a sign the copy was cut short. Extra spaces around groups are ignored.

When hex is easier to read than binary

Long binary is tiring to read, which is why programmers often write the same bytes in hexadecimal: two characters per byte instead of eight. 01001000 is 48 in hex, and 01101001 is 69. Each hex digit stands for exactly four binary digits, so converting between them is quick once you know the sixteen patterns. If your data arrives as hex, our guides on [hex to ASCII](/blog/hex-to-ascii) and [converting text to hex](/blog/how-to-convert-text-to-hex) walk through the same idea. For a comparison of text encodings, see [Base64 vs hex](/blog/base64-vs-hex).

Frequently asked questions

Try it on PixelTools — free, no upload needed