Number Base Converter

Type a number in any base from 2 to 36 and see it at once in binary, octal, decimal, hex, base32 and base36 — computed with BigInt, so nothing is rounded.

Runs in your browser. Your image is never uploaded.

How to use Number Base Converter — Binary, Hex, Decimal, Base36

  1. 1Enter your number and tell the tool which base it is currently in.
  2. 2Binary, octal, decimal, hexadecimal, base32 and base36 are all shown at once.
  3. 3Copy whichever one you need — digits are grouped so long values stay readable.

About Base Converter

Every number you write is a value plus an agreement about how many digits exist. Base 10 gives you ten symbols and each column is worth ten times the one to its right; binary gives you two, hex gives you sixteen by borrowing a-f, and base36 exhausts the alphabet at 0-9a-z. The value itself never changes when you convert — 255, 11111111, 377, ff, 7v and 73 are six spellings of one quantity. Binary and hex pair up especially neatly: one hex digit is exactly four binary digits, which is why grouping binary in fours lines the two columns up and lets you read a bitmask off a hex constant without a calculator.

The reason this page exists is precision. A JavaScript number is a 64-bit float, and it stops representing consecutive integers above 2^53 - 1, or 9,007,199,254,740,991. Any converter that parses your input into one of those and formats it back is guaranteed to be wrong for exactly the values people most often bring to a converter: 64-bit database keys, snowflake-style IDs, permission bitmasks and truncated hashes. Feed ffffffffffffffff to such a tool and you get 18446744073709551616 — one more than the real answer, 18446744073709551615 — because that is the nearest float. Here, parsing and formatting both run in BigInt, and when a value passes the 2^53 mark the page says so and shows you what the float version would have returned, so you can see the rounding you have avoided.

In use, a few small things save time. The copy button next to each base copies the plain digits without the grouping spaces, so the value drops straight into code, while the display keeps the spacing for reading. "Use as input" makes any result the new source value and switches the input base to match, which is the quickest way to check a round trip or chain a conversion. The uppercase toggle matches the DEADBEEF style used in memory dumps and colour codes. And the statistics row answers the question that usually follows a conversion — whether the value fits in a uint32 or needs 64 bits. Two honest limits: whole numbers only, no fractional part, and the base32 and base36 columns are numeral systems, not the RFC 4648 or Base64 style encodings used to wrap binary data as text.

This converter is a numeral-system tool rather than a data-encoding tool, and it is deliberately narrow: one input, six standard bases plus any extra base you choose from 2 to 36, exact arithmetic, and no server involved.

Frequently asked questions

How do you convert a number from one base to another by hand?
Divide the value by the target base, write down the remainder, then divide the quotient again, repeating until the quotient is zero; the remainders read bottom-to-top are the digits. Converting 255 to binary gives remainders 1,1,1,1,1,1,1,1 — that is 11111111. Going the other way you multiply each digit by the base raised to its position and add them up: ff in hex is 15x16 + 15 = 255.
Why do other converters get large hexadecimal values wrong?
Because they parse through a JavaScript number, which is a 64-bit float and can only hold integers up to 9,007,199,254,740,991 (2^53 - 1) exactly. Convert ffffffffffffffff that way and the nearest float is 18446744073709551616 — one too many, usually printed as 18446744073709552000 — instead of the correct 18446744073709551615. This tool uses BigInt end to end, so 64-bit IDs, bitmasks and hash values come back digit-for-digit correct, and it tells you on screen when a value has crossed the 2^53 line.
Is the base32 shown here the same thing as Base32 encoding?
No, and the difference matters. This page does positional base 32 — a numeral system with the digits 0-9 and a-v, so 255 is 7v. RFC 4648 Base32 is a byte-to-text encoding that uses A-Z plus 2-7 and pads with = signs; it turns bytes into text rather than rewriting a number's digits. The same caveat applies to base36 here, which uses 0-9 and a-z as numeral digits. If you want byte encoding, use the Base64 encoder instead.
Can it convert decimals, fractions or negative numbers?
Negative numbers yes — a leading minus sign is accepted and carried through to every base. Fractions no: this converter handles whole numbers only, so a decimal point is reported as an invalid digit rather than quietly truncated. Spaces and underscores in the input are ignored, which means you can paste grouped output such as 1111 1111 or 1_000_000 straight back in.
What do the bits, bytes and "smallest int type" figures mean?
Bits is how many binary digits the value's magnitude needs, bytes is that rounded up to whole 8-bit groups, and "smallest int type" is the narrowest fixed-width integer that still holds the value exactly — uint8 up to 255, uint32 up to 4,294,967,295, and so on to 128 bits. Negative values are measured against signed ranges, so -128 reports int8 while -129 needs int16. Note that the digits shown are sign-and-magnitude, not a two's-complement bit pattern.
Are there any limits, and does it work offline?
Input is capped at 5,000 digits, because parsing very long numbers gets slow enough to make the page feel stuck; below that, conversion is instant. Digit grouping is applied where it is conventional — binary in fours, decimal in threes, hex in pairs — and other bases are shown unbroken. The whole tool is JavaScript running on your own device, so you can load the page, go offline, and it keeps working.