Number Base Converter

Converts numbers between binary, octal, decimal, hexadecimal and any base from 2 to 36.

Source base

Binary

Octal

Hexadecimal

When to use each base

BaseExampleWhere it's used
Binary11111111Bit level — logical operations (AND/OR/XOR), bitmasks, network protocols
Octal377Unix/Linux file permissions (chmod), some legacy protocols
Decimal255Everyday use — the base humans read naturally
HexadecimalffMemory addresses, colors (#RRGGBB), hashes/checksums, binary dumps

What is positional notation

Any integer can be written in any base — the difference between binary, octal, decimal, and hexadecimal isn't the value itself, only how many symbols each position can hold before "rolling over" to the next digit (2 in binary, 8 in octal, 10 in decimal, 16 in hexadecimal — and so on up to 36, using 0-9 and then a-z). 255 in decimal is exactly the same number as 11111111 in binary, 377 in octal, and ff in hexadecimal — only the representation changes, never the quantity it represents.

Limitations

This tool only works with integers — no decimals/floating point. Negative numbers use sign and magnitude (a "-" in front, the rest converted normally), not two's complement: "-101" in binary means "minus five", never the fixed-width bit representation programming languages use internally for negative numbers (that's a different question — "how does -1 look as an 8-bit integer?" — which depends on picking a fixed width, and this tool doesn't assume one).

Frequently asked questions

This tool uses sign and magnitude (a "-" in front of the converted absolute value), not two's complement. Two's complement depends on picking a fixed bit width (8, 16, 32...) before computing the representation — a decision this tool doesn't make for you, since the same -5 would look different in 8 bits, 16 bits, or 32 bits.

For consistency with the rest of Nexinon — Hash Generator and UUID Generator already display hexadecimal in lowercase everywhere. Input accepts either case with no difference ("ff" and "FF" are the same value).

Yes — the tool uses BigInt internally, which represents integers with exact precision and no practical size limit. This matters starting at 2^53: beyond that, JavaScript's Number type (and several other languages) starts silently losing precision, which would be a real problem for someone pasting, say, a large hash or ID in hexadecimal.

Besides Binary/Octal/Decimal/Hexadecimal, you can pick any base between 2 and 36 by selecting "Other" — useful for cases like base36 or base62, common in URL shorteners and short ID generation. The alphabet used is always 0-9 followed by a-z, in order.

Each base only accepts a specific digit alphabet (for example, only 0 and 1 in binary) — instead of letting you type something invalid and warning afterward, the tool discards the out-of-alphabet character at the moment it would have been typed. This avoids interrupting typing with an error message for something already auto-corrected.

No — this tool only converts integers. Floating point in bases other than 10 is a considerably harder problem (even the notion of "exact decimal places" changes from base to base) and was left out of this version's scope.