Every number base uses positional notation: each digit stands for digit × base^position. Decimal 345 is 3×10² + 4×10¹ + 5×10⁰, and binary 1101 is 1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 13. To go the other way, divide repeatedly by the target base and read the remainders backwards: dividing 13 by 2 gives remainders 1, 0, 1, 1, which reversed is 1101. Type into any field of this converter and the other three bases update instantly.
Hexadecimal uses 0–9 and A–F for the values 0–15, and each hex digit maps to exactly four bits. One byte (8 bits) is therefore two hex digits, for example 255 = FF = 11111111. That is why colour codes (#FF8800), memory addresses, hashes and MAC addresses are written in hex: much shorter than binary but still easy to map back to bits. Each octal digit maps to three bits, and its best-known use is Unix file permissions: chmod 755 gives the owner rwx (7 = 111) and the group and others r-x (5 = 101).
Ordinary JavaScript numbers cannot represent every integer above 2⁵³ − 1 (9,007,199,254,740,991), so many online converters silently corrupt long hex strings or 64-bit IDs. This tool uses BigInt instead, which keeps integers of any length exact, so it is safe for database IDs, blockchain addresses and bit masks.
Each field accepts only valid digits: binary 0–1, octal 0–7, decimal 0–9 and hex 0–9 plus A–F in either case. The prefixes you see in code, 0b for binary, 0o for octal and 0x for hex, are only markers, so remove them before pasting.