Understanding hexadecimal and base 16
Why programmers use hexadecimal, how base 16 maps cleanly to bytes, and how to convert a hex value to a decimal number by hand.
Why base 16 exists
Computers store everything as bits, groups of eight of which form a byte. Writing bytes in binary is accurate but painfully long, and writing them in decimal hides their structure. Hexadecimal is the compromise: base 16 uses the digits 0 to 9 and the letters A to F, and because 16 is 2 to the fourth power, every hex digit maps to exactly four bits. That clean alignment is why colors, memory addresses and byte values are almost always shown in hex.
The digits and their values
A single hex digit ranges from 0 to 15. The values 10 through 15 are written as the letters A, B, C, D, E and F, so F is 15, the largest single digit. Two hex digits therefore cover 0 to 255, which is exactly one byte, and the pair FF is the maximum. This is why you often see byte values written as two-character hex codes and colors as six hex digits, one pair each for red, green and blue.
Converting hex to decimal by hand
To convert a hex number to decimal, expand each digit by its place value, a power of 16. Take 0x2F: the digit 2 sits in the sixteens place and F is 15 in the ones place, so the value is 2 times 16 plus 15, which is 47. For a longer value like 0x1A3, work from the right as 3 times 1, plus 10 times 16, plus 1 times 256, giving 419. The tool automates exactly this arithmetic, and its BigInt engine keeps the result exact no matter how many digits you supply.
Where you will meet hex values
Hexadecimal shows up across software. CSS colors such as #DEADBF are hex, memory addresses in a debugger are hex, MAC addresses and many hash outputs are hex, and low-level protocols dump raw bytes in hex. Knowing that 0xFF is 255 and that each pair of digits is one byte makes these easier to read. When you need the precise decimal value, for instance to compare against a numeric limit, converting is a quick way to check.