Skip to main content

100% Private

No Signup

Free Forever

One of 64 free AI tools by Mahmoud Zalt.

Free Number Base Converter

Convert binary, hex, dec & any base|
4.8 (1,201)

A free, private number base converter that runs entirely in your browser with zero dependencies. Type a value in any field - binary (base 2), octal (base 8), decimal (base 10), or hexadecimal (base 16) - and every other field updates live as you type, so you instantly see the same number expressed across all bases at once. There is also an arbitrary radix field where you can pick any base from 2 to 36 (digits 0-9 then A-Z) for both input and output. Conversion uses the browser native numeric engine: parseInt(str, radix) to read your input and Number.prototype.toString(radix) to render each base, the exact same primitives the JavaScript language ships. For whole numbers it uses BigInt internally so arbitrarily large integers convert exactly with no rounding or precision loss, far beyond the 53-bit safe-integer limit of a normal Number. Each base is validated against its own digit set, so an invalid digit (for example the letter G in hex, or a 2 in binary) shows a clear, friendly error instead of a silent wrong answer. Nothing is uploaded, no account is needed, and the page works fully offline once loaded. Copy any result to your clipboard with one click.

Free and provided as is, without warranty. Use at your own risk. Terms

Convert binary, octal, decimal, and hex instantly in your browser

This number base converter shows one value across every common base at the same time. Type in the binary, octal, decimal, or hexadecimal field and the others update live, so you can read the same number as base 2, base 8, base 10, and base 16 without doing the arithmetic by hand. There is nothing to install and no account to create: open the page and start typing.

Under the hood it relies on the same primitives the JavaScript language exposes - parseInt(str, radix) to read a string in a given base and Number.prototype.toString(radix) to print it back out. That keeps the tool tiny, fast, and dependency-free, and it means the results match exactly what you would get from the engine in your own code.

Any base from 2 to 36, with exact large-integer math

Beyond the four standard bases, the arbitrary radix field lets you choose any base from 2 to 36 for both input and output. The digit alphabet runs 0-9 and then A-Z, which is the full 36-symbol set that the native radix methods accept, so you can work in base 12, base 16, base 32, or base 36 for IDs, codes, and encodings.

Whole numbers are converted with BigInt, so values far beyond the 53-bit safe-integer ceiling convert exactly with no rounding or precision loss. Every field is validated against its own digit set as you type, which means a stray G in hex or a 2 in binary produces a clear inline error rather than a silently wrong answer.

Native, zero-dependency, offline, and private by design

Unlike converters that round-trip your input through a server, this tool does everything locally. The conversion logic is pure native JavaScript with no third-party libraries and no network requests, so once the page has loaded it keeps working with no connection at all. You can verify the privacy at any time by opening the Network tab in your browser DevTools and watching that nothing is sent while you type.

That makes it safe for converting sensitive values such as memory addresses, register contents, license keys, or internal identifiers. Each base is one click from your clipboard, the layout is responsive on phones and desktops, and the whole experience is instant because the math runs right where you are.

Where base conversion shows up in real work

Embedded and firmware developers read a hardware register or a datasheet value in hex and need the decimal or binary equivalent to understand which bits are actually set, since a datasheet routinely lists flags as a hex mask that only makes sense once expanded to binary. Network engineers convert an IP address or subnet mask between decimal and binary to understand exactly which host bits a CIDR range covers, a calculation that is much easier to verify by eye in binary than in decimal.

Designers and frontend developers convert a hex color code to its decimal RGB components when a design tool and a codebase disagree on format, and system administrators decode Unix file permission bits, chmod 755 or 644, from octal into binary to understand exactly which read, write, and execute bits are set for owner, group, and everyone.

Why hexadecimal is the human-friendly shorthand for binary

Computers operate in binary because a transistor is naturally a two-state switch, on or off, but raw binary is miserable for a human to read or write, a single byte is eight digits long and a 32-bit value is thirty-two. Hexadecimal exists specifically to solve that: each hex digit represents exactly four binary bits, so a byte becomes exactly two hex digits and a 32-bit value becomes exactly eight, with no remainder or awkward grouping at any boundary.

That clean four-bits-per-digit relationship is why hex, not decimal, is the standard way to write memory addresses, color codes, and byte values in code and documentation: converting hex to binary and back is a simple digit-by-digit lookup, while converting decimal to binary requires actual division. Octal exists for a related, older reason, three bits per digit, which mattered more on computer architectures built around word sizes divisible by three, and persists today mainly in Unix file permissions for historical reasons.

A brief history of counting in other bases

Base 10 winning out as humanity's default is really just an accident of anatomy, ten fingers, not a mathematical inevitability, and other bases have deep history: the Babylonians used a base-60 system nearly 4,000 years ago, and its fingerprints are still in modern life every time you read a clock, 60 seconds, 60 minutes, or a 360-degree circle. Base 12 (duodecimal) persisted for centuries in measurement systems, 12 inches to a foot, 12 items to a dozen, in part because 12 divides evenly by 2, 3, 4, and 6, more useful divisors than 10 offers.

Base 36 is not historical in the same way, it is a modern, practical choice: it is simply the largest base representable with the familiar Latin alphabet and Arabic numerals combined (0-9 plus A-Z), which is exactly why short URL slugs, license keys, and compact ID encodings often use base 36 or base 62, squeezing more information into fewer characters than decimal ever could.

How It Works

1

Type a value into any field: binary, octal, decimal, hexadecimal, or the custom base 2-36 field.

2

Every other base updates live as you type, computed locally with parseInt and toString plus BigInt for exact large integers.

3

Copy any converted result to your clipboard with one click, or fix the highlighted field if a digit is invalid for its base.

Need expert help with AI?

Looking for a specialist to help integrate, optimize, or consult on AI systems? Book a one-on-one technical consultation with an experienced AI consultant to get tailored advice.

Key Features

Live conversion across binary (base 2), octal (base 8), decimal (base 10), and hexadecimal (base 16) - edit one field and the rest update instantly
Arbitrary radix field for any base from 2 to 36, using digits 0-9 then A-Z, for both reading input and rendering output
BigInt-backed integer conversion so arbitrarily large whole numbers convert exactly, with no rounding or loss past the 53-bit safe-integer limit
Built on the browser native numeric engine: parseInt(str, radix) to parse and Number.prototype.toString(radix) to format, with zero external libraries
Per-base digit validation with a clear, friendly inline error when a character is not valid for that base (for example G in hex or 2 in binary)
Case-insensitive hex and high-radix input, with uppercase output and an optional grouped view for long binary strings
One-click copy to clipboard for every base, plus a quick clear/reset and example presets to explore
Native, zero-dependency, instant, and fully offline once the page has loaded - nothing is uploaded or tracked

Privacy & Trust

All conversion happens in your browser using native JavaScript number methods - nothing you type is ever sent to a server
No values, history, or metadata are stored remotely, logged, or transmitted to anyone
No account, signup, API key, or installation is required to use the converter
Zero third-party dependencies and zero network calls for the conversion logic - verify it yourself in the Network tab of your browser DevTools while typing

Use Cases

1Convert a hexadecimal color, memory address, or byte value to decimal or binary while reading code or a datasheet
2Translate decimal values into binary or hex when writing low-level code, bitmasks, flags, or register settings
3Check homework or learn positional number systems by watching the same value across base 2, 8, 10, and 16 at once
4Decode permission bits or file modes expressed in octal (such as 755 or 644) into binary or decimal
5Work with non-standard bases like base 12, base 32, or base 36 for encoding IDs, timestamps, or short codes
6Sanity-check a parser or serializer by confirming what parseInt and toString produce for a given radix

Limitations

  • Supported bases range from 2 to 36 because that is the digit set (0-9 then A-Z) that JavaScript toString and parseInt accept - higher bases are not available.
  • Fractional values entered in the decimal field are converted using floating-point, so non-integer results in other bases may be approximate; the exact BigInt path applies to whole numbers only.
  • Only the standard digit alphabet is used; custom symbol sets, base64, or signed two-complement representations are out of scope for this tool.
  • Conversion runs locally in your browser, so extremely long inputs (thousands of digits) depend on your device speed, though normal numbers are effectively instant.

Frequently Asked Questions

Is this number base converter free?

Yes, it is completely free with no limits. You can convert between binary, octal, decimal, hexadecimal, and any base from 2 to 36 as many times as you like without paying, signing up, or installing anything. The conversion runs entirely in your browser using built-in JavaScript number methods, so there is no service to bill you for.

Is anything I type sent to a server?

No. Every conversion is computed locally on your device inside the browser using parseInt and Number.prototype.toString, plus BigInt for exact large-integer math. Nothing you enter is uploaded, stored remotely, or logged. You can confirm this yourself by opening the Network tab in your browser DevTools while typing: you will see no requests carrying your numbers.

Do I need to install an app or extension?

No. There is nothing to install. The converter is a single web page that runs in any modern browser on desktop or mobile. Because it has zero dependencies and uses native number methods, it loads quickly and works the same across Chrome, Firefox, Safari, and Edge. Just open the page and start typing.

Does it work offline?

Yes, once the page has loaded. The conversion logic is pure native JavaScript with no external libraries and no API calls, so after the initial page load you can disconnect from the internet and it will keep converting normally. Only the very first load needs a connection to fetch the page itself.

Can it handle very large numbers without losing precision?

Yes for whole numbers. Integer conversions use BigInt under the hood, so numbers far larger than the usual safe-integer limit (about 9 quadrillion, or 2 to the 53rd power) convert exactly with no rounding. Decimal fractions are a different matter: fractional values use standard floating-point math, so a result in another base may be an approximation rather than exact.

What is the highest base I can convert to or from?

Base 36. The digit alphabet runs 0 through 9 and then A through Z, which is 36 distinct symbols, and that is the maximum the JavaScript parseInt and toString radix methods support. The lowest is base 2 (binary). The arbitrary radix field lets you pick any value in that 2-to-36 range for both input and output.

Why am I seeing an invalid input error?

Each base only allows certain digits: binary allows only 0 and 1, octal allows 0 to 7, decimal allows 0 to 9, and hexadecimal allows 0 to 9 plus A to F. If you type a character outside that set for the field you are editing (for example the letter G in the hex field, or a 2 in the binary field), the converter flags it instead of guessing. Remove or correct the invalid digit and the conversion resumes automatically.

Q&A SESSION

Got a quick technical question?

Skip the back-and-forth. Get a direct answer from an experienced engineer.