An admin who can't switch between binary, hex, and decimal is like a mechanic who only owns metric wrenches. Eventually the moment comes where you can't proceed without it. Usually around 10 PM, when the firewall rule isn't matching and the subnet mask turns out not to be /24 after all.
This article shows you where number systems ambush you in daily admin work โ not as a theoretical exercise, but as practical tools. With the bitcalc Number Converter, which converts live as you type.
Hexadecimal (base 16): What machines show compactly. MAC addresses, memory addresses, color codes, hash values.
Binary (base 2): What the hardware sees. Subnet masks, permission masks, bit flags.
chmod: permissions in octal โ the unknown fourth system
Every admin knows chmod 755. But why 755? Octal (base 8). Three bits per permission group: r=4, w=2, x=1. 755 = rwxr-xr-x. Unix permissions, umask, file descriptors โ all octal thinking. Which is really binary thinking: each bit is a permission.
MAC addresses: hex, because 48 bits would be unreadable otherwise
A MAC address is 48 bits. Binary would be a 48-digit string of zeros and ones. Hex needs just 12 characters: 00:1A:2B:3C:4D:5E. The first three bytes are the OUI โ vendor ID assigned by IEEE. Reading Wireshark captures or switch MAC tables means reading hex. Without it, network logs would be a 48-digit binary nightmare.
Subnet masks: where binary hurts the admin
255.255.255.0 in binary is 11111111.11111111.11111111.00000000. Looks harmless in decimal โ until you need to compute a /27 network. /27 = 255.255.255.224. Why 224? The last octet: 11100000 = 128+64+32 = 224. The Number Converter does this live. Type 11100000, set source to Binary โ instantly 224 decimal, E0 hex.
Color codes: hex for the eye
Web colors in #1E3A5F format are just three hex values for R, G, B. 1E = 30, 3A = 58, 5F = 95. bitcalc's Cybertrust theme uses #1E3A5F for Navy and #00D4AA for Teal. If you adjust CSS colors, use preprocessor functions like darken(), or build a dark mode that transforms color values โ you're converting hex to decimal constantly.
Bitmasks and flags: thinking in powers of two
Bitmasks are admin-level machine reading. Each bit is a property. Linux open() flags: O_WRONLY=1, O_CREAT=64, O_TRUNC=512. open("file", O_WRONLY|O_CREAT|O_TRUNC) = 1|64|512 = 577. Reading strace output, debugging kernel modules, writing C โ you're reading bitmasks. And when you read them, you either do mental math or keep the Number Converter open.
Hex in memory: why debuggers speak hex
GDB, WinDbg, LLDB โ all show addresses in hex. 0x7fff5fbff8a0. Memory is organized in bytes (8 bits = exactly two hex digits). 0xFF = 255 = one full byte. A 64-bit address space needs just 16 hex digits. Decimal would need 20, binary would need 64. Hex is the sweet spot.