Converting a number between bases means representing the same value using a different set of digits. A decimal (base 10) number can be expressed exactly in binary (base 2), hexadecimal (base 16), or any other base.
Convert integers between binary, octal, decimal, hexadecimal, and any base from 2 to 36.
Number base conversion is fundamental in computing. Every base is a positional system: a digit's value depends on its position, multiplied by a power of the base. Binary (base 2) is the native language of processors; octal (base 8) and hexadecimal (base 16) are compact representations used in memory addressing, colors, file permissions and protocols. This tool accepts any base from 2 to 36, using the digits 0–9 and the letters A–Z to represent values from 0 to 35, and converts at once to binary, octal, decimal and hexadecimal, plus a custom base. Internally, all computation uses BigInt, JavaScript's arbitrary-precision integer type, so there is no overflow or rounding, even for numbers with hundreds of digits (the practical limit is 256 digits in the source base). A minus sign is accepted, and everything runs locally, without sending data to servers.
In any base b, a number is the sum of each digit multiplied by b raised to its position, counting right to left from zero. In decimal, 255 is 2×10² + 5×10¹ + 5×10⁰. Converting to another base is the inverse: you repeatedly divide the value by the target base, and the remainders, read bottom to top, form the digits. Bases above 10 need extra symbols, by convention, the letters A–Z cover the values 10 to 35.
The delicate part is precision. If conversion used JavaScript's ordinary number, large values would lose digits to rounding beyond about 2⁵³. This tool uses BigInt, which represents arbitrarily large integers exactly, so a 60-digit hexadecimal becomes the correct decimal with no loss whatsoever. The limit is only practical: up to 256 digits of input.
Example 1, 255 in decimal: in binary it is 11111111 (eight bits on), in octal 377 and in hexadecimal FF. Not by accident: 255 is the largest value of an 8-bit byte, and FF is how that 'full' byte appears in colors (the maximum component of an RGB channel) and in masks.
Example 2, reading a hexadecimal: 0x2A entered as base 16 yields 42 decimal, 101010 in binary and 52 in octal. The pair of hex digits maps exactly to 8 bits (each hex digit = 4 bits), which makes hexadecimal the natural way to write bytes in dumps, memory addresses and permission values.
Base conversion is routine when reading web colors (#FF8800), setting file permissions in octal (chmod 755), inspecting memory addresses in hex, decoding binary flags or generating short identifiers in base 36 (digits + alphabet), common in shortened URLs and compact keys. Selecting the correct source base is what guarantees the result, the same text 101 is 5 in binary, 65 in octal, 101 in decimal and 257 in hexadecimal.
Two honest limits: the tool works with integers, positive or negative, but does not convert fractions or decimal places between bases. And negative numbers are represented only with a minus sign, it does not produce two's complement or other low-level representations. Everything is computed in the browser, with nothing sent to servers.
Paste the code into your HTML and the tool shows up on your page, without J-Kit's navigation and ads. It still runs in the browser of whoever visits your site.
<iframe
src="https://jkit.tools/embed/en-US/base-converter"
width="100%"
height="600"
style="border:0"
loading="lazy"
title="Number Base Converter"
></iframe>These references help contextualize formulas, standards, APIs and limitations used on this page. They do not replace professional validation when a result has legal, financial, medical or operational impact.
Converting a number between bases means representing the same value using a different set of digits. A decimal (base 10) number can be expressed exactly in binary (base 2), hexadecimal (base 16), or any other base.
All data stays in your browser. No numbers are sent to any server.