How Base Conversion Actually Works, With Real Numbers
Converting a number to base 10 follows a straightforward pattern: multiply each digit by its positional power, then add everything up. Take the hexadecimal number 1A3. The rightmost digit 3 sits in the ones place (16⁰), the A (which represents 10) sits in the sixteens place (16¹), and the 1 sits in the 256s place (16²). So you calculate: 1×256 + 10×16 + 3×1 = 256 + 160 + 3 = 419 in decimal.
Going the other direction requires repeated division. To convert decimal 419 back to hex, divide by 16 and track remainders. 419 ÷ 16 = 26 remainder 3. Then 26 ÷ 16 = 1 remainder 10. Finally 1 ÷ 16 = 0 remainder 1. Reading the remainders from last to first gives you 1, 10, 3 — or 1A3 in hex notation.
This tool automates both directions for any base. Converting between non-decimal bases (say, binary to hex) typically routes through base 10 internally, though hex and binary have a convenient shortcut: each hex digit maps exactly to four binary digits, which is why the tool shows nibble spacing for easier reading.
Debugging a Memory Address in an Embedded System
You're troubleshooting a microcontroller that's crashing at a specific memory location. The debugger reports the fault address as 0x0001F4A0. Your memory map documentation lists regions in decimal byte ranges. You need to figure out which memory section this address falls into.
Paste 1F4A0 into the converter with base 16 selected. The result: 128,160 in decimal. Your documentation shows that addresses 131,072 through 196,607 belong to the external RAM region, while 0 through 131,071 is internal flash. Since 128,160 falls below 131,072, you now know the crash happened in flash memory — probably a code execution issue rather than a data corruption problem.
This kind of quick translation saves significant debugging time. Rather than manually calculating powers of 16 or trusting a rough estimate, you get the exact decimal value in seconds. The same workflow applies when reading packet captures, analyzing log files, or cross-referencing hardware datasheets that mix notation styles.
Base58 for Clean Addresses and Base64 for Data Encoding
Bitcoin addresses use Base58 encoding specifically because it excludes characters that look alike: zero and uppercase O, lowercase L and the number 1. This prevents expensive typos when someone hand-copies a wallet address. If you're building any system where humans will manually transcribe alphanumeric strings — gift card codes, short URLs, invoice references — Base58 is worth considering.
Base64 serves a different purpose entirely. It's designed for machines talking to machines, encoding binary data as printable ASCII characters. Email attachments, data URLs in CSS, and API authentication tokens all commonly use Base64. When you need to verify what a Base64 string actually represents, converting it to decimal (and then potentially to hex) lets you inspect the underlying bytes.
The converter also handles Base32, which appears in two-factor authentication codes like those from Google Authenticator. Understanding that your TOTP secret key is just a big number encoded for human-readable display helps when debugging authentication failures or migrating credentials between apps.
Mistakes That Produce Silently Wrong Results
The most common error is forgetting which base your input is in. Typing 100 and converting from binary gives you 4 decimal. Typing the same 100 from decimal gives you 1100100 binary. The tool can't guess your intent, so double-check the source base before converting. It sounds obvious, but this mistake wastes real debugging time when you're tired.
Another pitfall involves leading zeros. In some contexts 007 means seven, but in others (like old JavaScript) it signals octal. This tool interprets 007 in base 10 as just 7, but if you meant octal, you'd get a different decimal result. Always strip ambiguous leading zeros or explicitly verify your source base matches the format you're working with.
Finally, remember that Base58 and Base64 use specific character alphabets. A valid hex string containing the letters G or Z will fail as hex input. If you're getting unexpected errors, confirm your input string only contains characters valid for the source base — hex uses 0-9 and A-F only, while Base64 adds lowercase letters, plus, and slash.