What this tool does
This text to binary converter turns whatever you type into the bits a computer actually stores, and turns those bits back into readable text. It works in both directions, in three number bases — binary, hexadecimal and octal — and it counts bytes rather than guessing, because the number of groups on the right is almost never the number of characters on the left.
Everything runs in your browser. The text you paste is never uploaded, which matters more than usual here: people convert log fragments, keys and half-remembered strings from other people's systems.
Where 01000001 comes from
Type A and you get 01000001. That is 65 written in base two and padded to eight digits.
ASCII, standardised in 1963, laid the alphabet out to make arithmetic cheap: digits start at 48,
uppercase at 65, lowercase at 97. The gap of 32 between the cases is one bit, so A | 0x20 is a
and a & 0xDF is A — case conversion with no lookup table, on hardware that could not afford one.
The padding to eight is a convention rather than a requirement. ASCII only needs seven bits; the eighth arrived when bytes settled on eight bits and stayed there, first as a parity check and later as the doorway to everything that is not English.
Where one character stops being one byte
That doorway is UTF-8, and it is where most converters quietly lie. UTF-8 is variable length: a code point below 128 takes one byte, most Latin and Greek letters take two, the bulk of the world's scripts take three, and everything above U+FFFF — emoji included — takes four.
So é is not one group of eight bits, it is 11000011 10101001. The é is one character and two
bytes, and a converter that emits a single group has thrown away half of it. A rocket emoji is four
groups, thirty-two bits, one character. The statistics under the tool show characters and bytes side
by side, and the ratio between them tells you immediately whether your input is plain ASCII or
something wider.
The lead byte announces the length in unary: 0xxxxxxx for one byte, 110xxxxx for two, 1110xxxx
for three, 11110xxx for four, with every continuation byte starting 10. That design is why UTF-8
is self-synchronising — land anywhere in a stream and you can walk backwards to the start of a
character — and why the decoder here can tell you precisely which byte broke the sequence instead of
replacing the whole mess with a question mark.
Reading the groups
Spaces between groups are for humans; the bytes are identical without them. Hexadecimal is the same data at a quarter of the width, which is why hex dumps exist and binary dumps do not. Octal survives mostly in file permissions and in escape sequences from older systems.
If you want to see the same numbers as arbitrary bases rather than as text, the number base converter does that. For turning bytes into something safe to paste into JSON or a URL, use the Base64 encoder and decoder instead — binary is for reading, not for transport.