About Base Converter
Base Converter rewrites a number from one positional base to another, covering every base from 2 to 36. The value is parsed in the source base, converted to its ordinary decimal form, and re-expressed in the target base — so a hexadecimal FF becomes 255 as a decimal and 377 as an octal.
Bases above ten use letters for the extra digits, which is the convention shared by hexadecimal and every subsequent radix: A stands for ten and Z for thirty-five. That is why the upper limit is 36 rather than something rounder — there are only twenty-six letters to borrow.
Parsing follows the same rule most language runtimes use, which is worth knowing before you rely on the output. Reading stops at the first character that is not valid in the source base, so a hexadecimal string of FFG evaluates as 255 and the G is quietly dropped rather than reported as an error. Fractional values are truncated to whole numbers, since the conversion works on integers only.
How to use Base Converter
- 1 Paste the value you want converted into the value field.
- 2 Set the source base with the From base field, between 2 and 36.
- 3 Set the target base with the To base field.
- 4 Read the decimal form and the converted value in the target base.
Frequently asked questions
Why did a character in my input get ignored?
Because parsing stops at the first digit that is invalid for the source base — for instance a G in base 16. This matches how integer parsing works in most languages, but it does mean a typo silently shortens the value rather than raising an error, so check the decimal readout against what you expected.
Can it convert fractional or decimal values?
No. Both the source and target sides work with whole numbers, so a value such as 10.5 is truncated before conversion. Fractional bases exist mathematically but need a different algorithm from the digit-by-digit one used here.
What is the highest base it supports?
36, using the digits 0-9 followed by the letters A-Z. That is the standard limit for single-character digits, and it is what makes base 36 the usual choice when a number needs a short, case-insensitive textual form.
Does it accept a 0x prefix on hexadecimal input?
Yes when the source base is 16, because the parsing routine recognises the conventional prefix. In other bases a leading prefix would be read as an invalid character and stop parsing immediately, so strip it first.
Free, online, and private
Free to use
Base Converter is completely free. There is no account to create, no login, and no hidden charge or usage limit.
Runs online in your browser
It is a free online tool that runs entirely in your browser. Nothing to download or install — open the page and start using it right away.
Your data stays private
All processing happens locally on your device. Your input is never uploaded, stored, or tracked, so it never leaves your browser.
How Base Converter behaves in detail
These are the specifics of this implementation — the exact ranges, defaults and fixed settings you are working with.
| Parameter | Value |
|---|---|
| Radix bounds | 2 – 36 for both the source and the target base (defaults: 10 in, 16 out) |
| Output rows | exactly two — a Decimal line and a Base N line; no binary or octal rows are added |
| Parsing call | parseInt(value, from), so reading stops at the first character the source base cannot accept |
| Out-of-range radix | clamped with Math.max(2, Math.min(36, …)) before it is used as a radix |
| Rejected input | a NaN check yields the single line "Invalid value", with no hint about which character failed |
Compiled from the implementation of this tool and checked against it by itoolnet.
What Base Converter does not do
Knowing the edges of a tool saves more time than another list of its features. These are the cases where it will not do what you might expect.
- parseInt returns the prefix it managed to read rather than failing, so 255abc typed as base 10 converts as 255 — a typo late in a long value is silently discarded instead of reported.
- Only integers are handled. The read stops at the decimal point, so 3.5 in base 10 is converted as 3 and the fraction disappears without a warning, which rules out fractional values in every base.
- The number passes through a JavaScript double, so values above 2^53 lose precision: the 14-digit hex string 20000000000001 comes back as the decimal 9007199254740992 and prints in hex as 20000000000000.
Tested and documented by itoolnet, the team that builds and maintains this site.