To convert binary to text, split the binary string into 8-digit groups (bytes), read each byte as a number, and map that number to its character using the ASCII table. For example, 01001000 is 72, which is the letter H. Do the same for every byte and you get readable text. The fastest way to do it for a whole message is the binary encoder / decoder, but the manual method below shows exactly what is happening so you can decode by hand and check any tool's output.
TL;DR
- Split the binary into groups of 8 bits (one byte per character).
- Convert each 8-bit byte from binary to a decimal number (0-255).
- Look that number up in the ASCII table to get the character.
- Example:
01001000 01101001= 72, 105 = Hi. - To go the other way, replace each character with its 8-bit binary code.
The 3-Step Method
Standard text-to-binary uses 8 bits per character, so the first job is always grouping. If the spaces are already there, use them; if the binary is one long run of digits, count off 8 digits at a time from the left.
- Group into bytes. Break the string into 8-bit chunks. A correct binary message has a bit count that is a multiple of 8.
- Binary to decimal. Each bit is a power of two, from 128 on the left down to 1 on the right: 128, 64, 32, 16, 8, 4, 2, 1. Add the place values where the bit is 1.
- Decimal to character. Match the decimal number to the ASCII table below (65-90 are A-Z, 97-122 are a-z, 32 is a space).
Worked Example: Decode 01001000 01101001
Take the message 01001000 01101001. It is already grouped into two bytes.
| Byte | Place values where bit = 1 | Decimal | Character |
|---|---|---|---|
01001000 | 64 + 8 | 72 | H |
01101001 | 64 + 32 + 8 + 1 | 105 | i |
Reading the characters in order gives Hi. The same routine scales to any length: a 40-bit string is 5 bytes, so it decodes to 5 characters. If your bit count is not a multiple of 8, something is missing or an extra digit crept in.
Binary Alphabet Table (A-Z)
These are the standard ASCII codes for the uppercase letters. Lowercase letters share the same order but sit 32 higher, so a is 97 (01100001) and you can get any lowercase code by adding 32 to the uppercase decimal. A space is 32 (00100000).
| Letter | Decimal | Binary | Letter | Decimal | Binary |
|---|---|---|---|---|---|
| A | 65 | 01000001 | N | 78 | 01001110 |
| B | 66 | 01000010 | O | 79 | 01001111 |
| C | 67 | 01000011 | P | 80 | 01010000 |
| D | 68 | 01000100 | Q | 81 | 01010001 |
| E | 69 | 01000101 | R | 82 | 01010010 |
| F | 70 | 01000110 | S | 83 | 01010011 |
| G | 71 | 01000111 | T | 84 | 01010100 |
| H | 72 | 01001000 | U | 85 | 01010101 |
| I | 73 | 01001001 | V | 86 | 01010110 |
| J | 74 | 01001010 | W | 87 | 01010111 |
| K | 75 | 01001011 | X | 88 | 01011000 |
| L | 76 | 01001100 | Y | 89 | 01011001 |
| M | 77 | 01001101 | Z | 90 | 01011010 |
Why Text Is Stored as Binary
Computers store every character as a number, and every number as bits. The mapping from characters to numbers is a character encoding. The classic one is ASCII, defined in RFC 20, which assigns codes 0-127 to English letters, digits, punctuation, and control codes. Because 127 fits in 7 bits, ASCII is technically a 7-bit code, but modern systems pad each character to a full 8-bit byte, which is why binary text is normally written in 8-bit groups.
Modern text uses UTF-8, which is backward compatible with ASCII for the first 128 characters. That means plain English letters have the same binary in ASCII and UTF-8, but accented letters, emoji, and non-Latin scripts use multiple bytes and will not decode cleanly with the simple one-byte-per-character method here.
Reverse: Convert Text to Binary
Encoding runs the steps backward: take each character, find its ASCII decimal, and write that number as 8 binary digits. For the word Code:
| Character | Decimal | Binary |
|---|---|---|
| C | 67 | 01000011 |
| o | 111 | 01101111 |
| d | 100 | 01100100 |
| e | 101 | 01100101 |
So Code becomes 01000011 01101111 01100100 01100101. Notice the case matters: uppercase C is 67 but lowercase c is 99, a completely different byte. You can check any of these with the binary encoder or cross-check the decimal values with the decimal to ASCII converter.
Common Mistakes
- Wrong grouping. If you split into 7-bit groups, every letter shifts and the output is garbage. Always use 8 bits per character unless you know the source is raw 7-bit ASCII.
- Dropped leading zeros. The letter H is
01001000, not1001000. A byte always has 8 digits; keep the leading zero. - Ignoring case. Uppercase and lowercase are different codes 32 apart, so mixing them silently changes the message.
- Assuming one byte per character. Emoji and accented characters are multi-byte in UTF-8. A single-byte decode will produce broken symbols.
- Bit count not a multiple of 8. This is the fastest sign the binary is incomplete or has a stray digit.
Binary vs Hex and Base64
Binary is the most direct view of the bytes, but it is long. The same data is shorter in hexadecimal, where each byte is two hex digits, and in Base64, which packs 3 bytes into 4 printable characters. If you often move between them, the binary to hex converter handles the binary-hex direction directly. All three describe the exact same underlying bytes; they just display them differently.
FAQ
How many bits is one letter in binary? Eight bits, one byte, for standard ASCII text. The value fits in 7 bits but is padded to 8.
How do I convert binary to text without a table? Add the place values (128, 64, 32, 16, 8, 4, 2, 1) for each 1 bit to get the decimal, then recall or look up the character. For letters, 65-90 are A-Z.
Why does my decoded text look like random symbols? Usually wrong grouping (not 8 bits), a missing digit, or multi-byte UTF-8 characters being decoded one byte at a time.
Is binary the same as machine code? No. Binary here is a text encoding of characters. Machine code is binary instructions a CPU runs; both use bits, but they represent different things.
The single habit that prevents almost every binary-decoding error is counting to eight. Group strictly by bytes, keep the leading zeros, and any ASCII message falls out cleanly.
Ready to try it? Paste a binary string into the binary encoder / decoder, or explore more encoders in the full tools list and more guides on the cryptography blog.