Upload a file
  1. base64hub
  2. Other bases
  3. Binary to text

Binary to Text Translator: Decode 0s and 1s

Paste binary code such as 01001000 01101001 and read it as text (that one says Hi). Groups of 8 bits are read as bytes; spaces, commas, 0b prefixes and one long unbroken string all work.

Free no sign-up, no limits Local nothing uploaded 7-bit ASCII groups are read too Updated Oct 27, 2026
Input 0Bytes 0 BOutput 0

Processed in your browser. This page cannot send your data anywhere – how we know

How to translate binary to text

  1. Paste the binary into Input · Binary. Bytes can be separated by spaces, new lines, commas, semicolons or |, or not separated at all.
  2. The text appears in Output · Text as you type.
  3. If you see �, the bits are not valid UTF-8. Try another Charset under the output, such as ISO-8859-1.
  4. Copy output copies the text. Text → Binary above the tool switches direction, as does Text to Binary.

How to read binary by hand

Each group of 8 bits is one byte. Give every position a value, from 128 on the left down to 1 on the right, and add up the positions that hold a 1:

Bit01001000
Value1286432168421

01001000 is 64 + 8 = 72, and character 72 in ASCII is H. 01101001 is 64 + 32 + 8 + 1 = 105, which is i.

You rarely need the arithmetic for letters, because ASCII is laid out in a pattern. The first three bits say what kind of character it is, and for letters the last five bits are the position in the alphabet:

Starts withMeaningExamples
010uppercase letter01000001 A, 01001000 H, 01011010 Z
011lowercase letter01100001 a, 01101001 i, 01111010 z
0011digit00110000 0, 00111001 9
00100000space

So 01000011 ends in 00011, which is 3, the third letter: C. Uppercase and lowercase differ in a single bit, the third from the left.

Formats the translator accepts

InputRead as
01001000 011010018-bit groups split by spaces or new lines
01001000,01101001 or 01001000;01101001commas, semicolons or | as separators
0b01001000 0b011010010b prefixes are ignored
1001000 11010017-bit groups, as in classic 7-bit ASCII exercises
0100100001101001one bit string, cut into 8-bit pieces

All of them decode to Hi. A group shorter than 8 bits is read as one byte, which is why the 7-bit version works. If any group is longer than 8 bits, the tool joins all the bits into one string and cuts that into bytes instead. Anything other than 0, 1 and separators stops the conversion with the position of the bad character; the Show button next to the message selects it in the input.

Binary that is not plain ASCII

ASCII bytes always start with 0. A byte starting with 1 belongs to a multi-byte UTF-8 character, and its leading bits tell you how long the sequence is:

CharacterUTF-8 bitsPattern
é11000011 10101001110 starts a 2-byte character, 10 continues it
€11100010 10000010 101011001110 starts a 3-byte character
👋11110000 10011111 10010001 1000101111110 starts a 4-byte character

If you decode these one byte at a time you get junk such as é. Keep the bytes together and leave Charset on UTF-8.

From binary to Base64

Binary, hex and Base64 are all ways of writing the same bytes. Binary uses 8 characters per byte, hex 2, Base64 about 1.33, so Base64 is what systems use to move binary data through text: email attachments, JSON fields, data URIs. To turn your bits into Base64 directly, use Binary to Base64. To see the bits inside a Base64 string, use Base64 to Binary; how Base64 works shows how it regroups those bits 6 at a time.

Binary to text in code

bits = "01001000 01101001"
bytes(int(b, 2) for b in bits.split()).decode("utf-8")   # 'Hi'
const bits = "01001000 01101001";
new TextDecoder().decode(Uint8Array.from(bits.split(" "), b => parseInt(b, 2)));   // 'Hi'

Both assume the groups are separated by single spaces; the tool above is more forgiving about the input format.

FAQ

What does 01001001 00100000 01101100 01101111 01110110 01100101 00100000 01111001 01101111 01110101 mean?

I love you. Each 8-bit group is one ASCII character, and 00100000 is the space between the words.

How many binary digits make one letter?

Eight, one byte, for any letter or digit in plain ASCII text. Accented letters take 16 bits in UTF-8, most other scripts 16 or 24, and emoji 32.

Can I translate binary that has no spaces?

Yes. A continuous string such as 0100100001101001 is cut into 8-bit pieces from the left. Its length has to be a multiple of 8, otherwise the tool reports how many bits it found.

Why does my binary translate into gibberish?

Usually a bit is missing or extra in an unspaced string, which shifts every following byte. Add spaces between the bytes if you can; then one bad group spoils one character and the rest still read correctly.