# Binary to Text Decoder

> Translate binary (8-bit groups of 0s and 1s) into ASCII or UTF-8 text.

- Page: https://decoder.tools/binary-to-text
- Category: Data, Radix & String
- Status: live, runs in the browser
- Last reviewed: 2026-10-23

A binary to text translator splits a string of 0s and 1s into 8-bit bytes and reads each byte as a character. `01001000` is 72, which is the letter `H`.

## Example

```text Input
01001000 01101001 00100001
```

```text Output
Hi!
```

Spaces are optional. `010010000110100100100001` decodes to the same thing, as long as the total number of bits is a multiple of 8.

## How binary text works

Computers store text as numbers, and each number is a byte of 8 bits. Reading a byte means adding up the place values of its 1 bits:

| Bit position | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|
| `01001000` | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |

64 + 8 = 72, and 72 in ASCII is `H`. Uppercase letters run from `01000001` (A, 65) to `01011010` (Z, 90). Lowercase letters are the same with the third bit set, so `a` is `01100001` (97). Characters outside ASCII take 2 to 4 bytes in UTF-8, and this tool decodes those too.

Binary "secret messages" are common in puzzles, escape rooms, CTF challenges and geek T-shirts. They're almost always plain ASCII.

## How to use the binary translator

1. Paste the binary. Any separator works: spaces, commas, new lines or nothing.
2. Read the text in the output panel.
3. If you see "Bit count is not a multiple of 8", a digit is missing or extra. Each character needs exactly 8 bits. Some puzzles use 7-bit ASCII, which needs a leading `0` added to each group.

## Convert binary to text in code

```python Python
bits = "01001000 01101001 00100001"
print(bytes(int(b, 2) for b in bits.split()).decode())  # Hi!
```

```js JavaScript
const bits = "01001000 01101001 00100001";
console.log(String.fromCharCode(...bits.split(" ").map((b) => parseInt(b, 2)))); // Hi!
```

## Binary at a glance

| | |
|---|---|
| Bits per character | 8 (one byte) for ASCII, 8 to 32 for UTF-8 |
| `A`–`Z` | `01000001` to `01011010` |
| `a`–`z` | `01100001` to `01111010` |
| Space | `00100000` |

## FAQ

### What does 01001000 01101001 mean?

`Hi`. `01001000` is 72 (`H`) and `01101001` is 105 (`i`).

### Why is my binary not decoding?

The total bit count must be a multiple of 8. If the groups are 7 bits long, the message is 7-bit ASCII: add a `0` to the front of each group. If they're 5 bits long and use only A and B (or 0 and 1), it may be a [Baconian cipher](/baconian-cipher-decoder).

### How do I convert text to binary?

Look up each character's code and write it in base 2, padded to 8 digits. In Python: `" ".join(f"{b:08b}" for b in "Hi".encode())`.
