Number Base Converter

Input

Input base
Developer options
Bit width
Interpretation
Binary grouping
Hex letter case
Bitwise operation

EmptyIntegers only

Common representations

Enter an integer to see its binary, octal, decimal, and hexadecimal representations.

4 basesexact BigInt math
Conversion reference
DecimalBinaryOctalHex
0000
10101012A
15111117F
100110010014464
25511111111377FF
FAQ

How do I convert octal file permissions (like chmod 755) to binary?

Convert each digit separately — every octal digit maps to exactly 3 binary digits (755 → 111 101 101), since 8 = 2³.

Why does hexadecimal map so cleanly to binary?

Each hex digit represents exactly 4 bits (a nibble), so a byte is always exactly two hex digits — e.g. 0xFF = 11111111.

What bases besides binary/octal/decimal/hex are supported?

Any base from 2 to 36 — set a custom input base and digits A–Z stand in for values above 9, the same convention hex uses for A–F.

Why did my hexadecimal input get rejected?

Hex only uses digits 0-9 and letters A-F — check for a typo or an out-of-range character.

Does it handle negative numbers?

Yes, with Signed interpretation — see above for how negative values are encoded.

Is my input sent anywhere?

No — conversion runs entirely client-side.

About this Number Base Converter

Convert binary, octal, decimal, and hexadecimal integers with exact signed or unsigned arithmetic.

All conversion uses exact integer arithmetic locally in your browser. The converter supports signed and unsigned integers; decimal fractions are intentionally not supported.

How to use the converter

Enter an integer and choose its base, or keep Auto detect. Open Developer options when you need fixed-width or signed interpretation. Every representation updates as you type, and any row can be copied individually.

Signed values and two’s complement

With a fixed width and Signed interpretation, negative decimal values are encoded as two’s-complement bit patterns. Non-decimal patterns such as FF at 8 bits are interpreted from their sign bit. Values outside the selected range are rejected rather than wrapped.