How to convert binary to text by hand
Split the binary into bytes of 8 bits and convert each byte to a decimal number by adding the place values (128, 64, 32, 16, 8, 4, 2, 1) of the bits that are 1. For 01001000 that is 64 + 8 = 72.
Look each number up in the ASCII table: 72 is H. A byte of 128 or more is part of a longer UTF-8 character, so it is read together with the bytes that follow it.
Example 1: 01001000 01101001 → Hi
Read 8 bits at a time, then decode the bytes as UTF-8
Each group of 8 bits is one byte (a number from 0 to 255). Bytes below 128 are ASCII characters; larger values combine into one character, which is how accented letters and emoji are stored.
| Bits | Byte (decimal) | Hex | Character |
|---|---|---|---|
| 01001000 | 72 | 48 | H |
| 01101001 | 105 | 69 | i |
Text: Hi
Example 2: 01000011 01100001 01100110 11000011 10101001 → Café
Read 8 bits at a time, then decode the bytes as UTF-8
Each group of 8 bits is one byte (a number from 0 to 255). Bytes below 128 are ASCII characters; larger values combine into one character, which is how accented letters and emoji are stored.
| Bits | Byte (decimal) | Hex | Character |
|---|---|---|---|
| 01000011 | 67 | 43 | C |
| 01100001 | 97 | 61 | a |
| 01100110 | 102 | 66 | f |
| 11000011 10101001 | 195 169 | C3 A9 | é |
Text: Café
Where this comes up
- Decoding a message or puzzle written in binary.
- Checking coursework where you encoded a word in binary.
- Reading raw bytes from a network capture, file or serial port that you expect to contain text.
Frequently asked questions
Why do I get an error that the bytes are not valid UTF-8?
Some byte sequences cannot be text. For example 11111111 never appears in UTF-8, and a byte above 127 must be followed by the right continuation bytes. If you see this error, the binary is probably a number, an image or other binary data rather than text.
Do I need spaces between the bytes?
No. If there are no spaces, the tool splits the binary into groups of 8 from the left. If you do use spaces, every group must be exactly 8 bits, which helps catch a missing digit.
What if my binary uses 7 bits per character?
Add a leading 0 to each group to make 8 bits. Original ASCII was a 7-bit code, so 1001000 and 01001000 are both H.
Is my data sent anywhere?
No. The conversion runs in your browser and nothing you paste is uploaded.