From Binary to Hex: Human-Friendly Representations
Binary (1s and 0s) is how computers store and process everything — but it's not easy for humans to read or write long binary strings. That’s where octal (base-8) and hexadecimal (base-16) come in.
Why Not Just Use Binary?
Here’s the binary for the number 255: 11111111
In hexadecimal, it’s simply: FF
Much easier to read and write, especially for long bit patterns like memory
addresses or instructions.
Hexadecimal (Base-16)
Each hex digit represents 4 bits (a nibble):
Hex: A F →
AF - 0 = 0000
- 1 = 0001
- ... up to ...
- F = 1111
Octal (Base-8)
Each octal digit represents 3 bits:
Octal: 6 5 →
65
Octal was more common in older systems like UNIX permissions (chmod 755), while hex dominates modern computing (e.g., memory addresses, colors
in CSS: #FF00CC).
Nibble examples
| Binary | 0001 | 0010 | 0100 | 1000 | 1010 | 1111 |
|---|---|---|---|---|---|---|
| Octal | 01 | 02 | 04 | 10 | 12 | 17 |
| Hex | 1 | 2 | 4 | 8 | A | F |
| Decimal | 1 | 2 | 4 | 8 | 10 | 15 |
Mnemonic Tip
Bigger numbers (16-bit/32-bit/64-bit/etc) don't necessarily become more complicated. To quickly convert:
- Split binary into groups of 4 (for hex) or 3 (for octal), starting from the right.
- Pad with zeros if needed.
Try for yourself: "What is 10110100 in hex?" → Answer:
B4
Decimals
Normally, humans write down numbers in a decimal (base-10) system. Converting binaries to decimal is a lot more work, especially for bigger numbers. The only real use case for this is when converting between integers and Ascii strings. Binary data that is not an integer, is usually converted to a hex string. Presented below is a complete table of 1-byte signed integers, showing the complexity with converting to decimal with even this small data size.
| Hex | _0 | _1 | _2 | _3 | _4 | _5 | _6 | _7 | _8 | _9 | _A | _B | _C | _D | _E | _F |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0_ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 1_ | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
| 2_ | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
| 3_ | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
| 4_ | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 |
| 5_ | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 |
| 6_ | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 |
| 7_ | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 |
| 8_ | -128 | -127 | -126 | -125 | -124 | -123 | -122 | -121 | -120 | -119 | -118 | -117 | -116 | -115 | -114 | -113 |
| 9_ | -112 | -111 | -110 | -109 | -108 | -107 | -106 | -105 | -104 | -103 | -102 | -101 | -100 | -99 | -98 | -97 |
| A_ | -96 | -95 | -94 | -93 | -92 | -91 | -90 | -89 | -88 | -87 | -86 | -85 | -84 | -83 | -82 | -81 |
| B_ | -80 | -79 | -78 | -77 | -76 | -75 | -74 | -73 | -72 | -71 | -70 | -69 | -68 | -67 | -66 | -65 |
| C_ | -64 | -63 | -62 | -61 | -60 | -59 | -58 | -57 | -56 | -55 | -54 | -53 | -52 | -51 | -50 | -49 |
| D_ | -48 | -47 | -46 | -45 | -44 | -43 | -42 | -41 | -40 | -39 | -38 | -37 | -36 | -35 | -34 | -33 |
| E_ | -32 | -31 | -30 | -29 | -28 | -27 | -26 | -25 | -24 | -23 | -22 | -21 | -20 | -19 | -18 | -17 |
| F_ | -16 | -15 | -14 | -13 | -12 | -11 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |