How to read binary by hand
You don't need a computer to decode binary. You need eight numbers: 128, 64, 32, 16, 8, 4, 2, 1. Those are the place values of the eight digits in a byte, from left to right.
- Split the binary into groups of 8 digits. Each group is one byte, and for English text, one letter.
- Write the place values under each group. Add up the values that sit under a 1 and ignore the ones under a 0.
- Look the total up in an ASCII table. 65 is "A", 97 is "a", 32 is a space.
Try it on the second byte in the strip at the top of this page. In 01101001 the 1s sit under 64, 32, 8 and 1. That adds up to 105, which is a lowercase "i".
What does 01001000 mean?
It is the capital letter H. The 1s sit under the place values 64 and 8, which add up to 72, and 72 is H in both ASCII and UTF-8.
A shortcut once you've done a few: capital letters start with 010, lowercase letters with
011, and the last five digits count the letter's place in the alphabet. A ends in
00001, B in 00010, Z in 11010 (26). Digits work the same way: they start
with 0011 and end with the digit written in binary, so the character “7” is 00110111.
How do I translate binary to English?
Paste the 0s and 1s into the binary box above and the English text appears on the left as you paste. It works with or without spaces between the bytes. To do it by hand, split the digits into groups of 8, turn each group into a number, and look the number up in an ASCII table.
Turning numbers into binary
Numbers are simpler than letters, because there is no code table in between: binary is just the number written in base 2. To convert 13 by hand, keep dividing by 2 and write down the remainders:
- 13 ÷ 2 = 6, remainder 1
- 6 ÷ 2 = 3, remainder 0
- 3 ÷ 2 = 1, remainder 1
- 1 ÷ 2 = 0, remainder 1
Read the remainders from the bottom up: 13 is 1101. Check it with the place values: 8 + 4 + 1 = 13.
The “Numbers, not letters?” box in the translator does this instantly for numbers of any size. Note the
difference: the number 7 is 111, but the typed character “7” is the byte 00110111.
Bits and bytes in one minute
A bit is a single 0 or 1, the smallest piece of information a computer keeps. Eight bits make a byte. A byte has 256 possible patterns, from 00000000 to 11111111, which is room for every English letter, digit and punctuation mark with plenty left over.
That's why ASCII, the code published in 1963 that most English text still follows, needed only 7 bits per character. On machines built around 8-bit bytes, the extra bit usually stayed 0.
Is binary a language?
Not the way English is. Binary is a way of writing numbers with only two digits, 0 and 1. A code such as ASCII or UTF-8 decides which number stands for which character, so "translating binary" really means decoding those numbers.
Why an emoji takes 32 bits
English letters fit in one byte. Most of the world's other characters don't. Today 99.1% of websites send their text as UTF-8 (Wikipedia, citing W3Techs, 2026), a system sketched out in 1992 that uses between one and four bytes per character:
| Character | Bytes | Bits | Why |
|---|---|---|---|
| A | 1 | 8 | Basic Latin, the same as ASCII |
| é | 2 | 16 | Accented Latin, Greek, Cyrillic, Arabic, Hebrew |
| € | 3 | 24 | Most other symbols and scripts, including Chinese and Japanese |
| 😀 | 4 | 32 | Most emoji, and rarer scripts, which sit above the first 65,536 code points |
| 👍🏽 | 8 | 64 | Two characters joined: thumbs up plus a skin-tone modifier, 4 bytes each |
That adds up quickly. A two-word reply like “ok 👍” is 4 characters but 7 bytes, or 56 bits. The letter-by-letter table in the translator shows the byte count for every character you type. Fancy letters work the same way: a 𝓑 from our font generator sits above the first 65,536 code points too, so it takes 4 bytes where a plain B takes 1.
Why is my binary not translating?
Usually a digit is missing or extra. Text binary comes in groups of 8, so one 7-digit or 9-digit group throws off everything after it. Add spaces between the bytes and check the group the translator points to. If you see the � symbol, the bytes don’t form valid UTF-8 characters.
Hex: the shorthand programmers use
Long rows of 0s and 1s are hard on the eyes, so programmers write bytes in hexadecimal (base 16). Each hex digit
stands for exactly four bits, which makes every byte two hex digits: 01001000 is 48 and 01101001 is
69. "Hi" in hex is 48 69. The translator shows hex and decimal under the binary, ready
to copy. Octal (base 8) is the older cousin: each octal digit covers three bits, so "H" is 110 in
octal. You'll mostly meet it in Unix file permissions, like chmod 755.
Text to binary in Python or JavaScript
If you're coding, both directions are one line. These use UTF-8, the same as the translator above:
# Python
" ".join(f"{b:08b}" for b in "Hi".encode()) # '01001000 01101001'
bytes(int(x, 2) for x in "01001000 01101001".split()).decode() # 'Hi'
// JavaScript
[...new TextEncoder().encode("Hi")].map(b => b.toString(2).padStart(8, "0")).join(" ")
new TextDecoder().decode(new Uint8Array("01001000 01101001".split(" ").map(x => parseInt(x, 2))))
Can a binary translator read a picture?
Not this one, and not in the way people hope. A photo is stored as binary too, but its bytes describe pixel colors, not letters, so decoding them as text gives gibberish. If you have a photo of written 0s and 1s, type the digits into the binary box.
Ideas for secret messages and puzzles
- Birthday card: write a friend's name in binary on the front and the decoded name inside.
- Class warm-up: give pairs a five-letter word in binary and race to decode it by hand.
- Escape-room clue: hide a lock code as binary numbers with the converter in the tool. 7 is
111, 4 is100. - Bead bracelet: pick one bead color for 0 and another for 1. An initial takes 8 beads.
Your turn. Decode this by hand before you peek:
01111001 01101111 01110101 00100000 01100100 01101001 01100100 00100000 01101001 01110100
Show the answer
It says "you did it". Paste it into the binary box above to check each letter.