How this tool works
Each character of your input is converted to its numeric code and shown in base two or base sixteen, one group per character, separated by spaces.
Binary output is padded to eight digits per character and hexadecimal to two, which is why an eight-digit group is one byte and a two-digit group is the same byte written more compactly. The code used is the character's UTF-16 code unit as JavaScript reports it, so plain English text produces values from 32 to 126 and matches ASCII exactly. Characters beyond the basic Latin range have larger codes and will exceed the padding width rather than being truncated, and an emoji is stored as two code units and appears as two groups.
What the groups mean
- Eight binary digits is one byte: the padding exists so that groups are the same width and can be read positionally. Without it, a space and a lowercase z would look like different-length numbers.
- Hexadecimal is the same value, written shorter: each hex digit stands for exactly four binary digits, so two hex digits and eight binary digits carry identical information.
- This is a representation, not encryption: anyone can convert it back in seconds. It obscures text from a casual glance and nothing more.
- Non-Latin characters exceed the padding: an accented or non-Latin character has a code above 255 and produces a longer group. That is correct output, not a fault, but it breaks the neat one-byte-per-character reading.