Two different definitions of "kilobyte"
"Kilobyte" has meant two different quantities since the earliest days of computing, and both are still in active use. The strict SI (International System of Units) meaning treats "kilo" the same way it's used everywhere else in metric measurement — exactly 1000. But computer memory is addressed in powers of two, and 1024 (210) is close enough to 1000 that early engineers reused the same metric prefixes — kilo, mega, giga — to mean powers of 1024 instead, purely because it was convenient shorthand. That convenience is the entire reason two incompatible definitions of the same word have coexisted for decades.
How IEC prefixes resolved the ambiguity — on paper
In 1998, the International Electrotechnical Commission standardized a distinct set of binary prefixes — kibi, mebi, gibi, tebi, pebi, exbi, abbreviated KiB, MiB, GiB, TiB, PiB, EiB — each unambiguously a power of 1024, leaving KB, MB, and GB free to mean their original SI powers of 1000. Adoption has been inconsistent: some operating systems and technical documentation use KiB/MiB/GiB precisely as intended, while consumer software and everyday conversation still widely say "KB" or "MB" when 1024-based values are actually meant. Both tables above are labeled according to the IEC standard specifically to keep the two systems unambiguous next to each other.
Why the "missing" storage capacity is a units mismatch, not missing data
A drive marketed as "1 TB" almost always means exactly 1,000,000,000,000 bytes, using the manufacturer's decimal definition — and that's genuinely how many bytes are physically present and usable. An operating system reporting free space, however, typically divides that same byte count by 1024 three times over to display it as "GB" or "TB," using the binary meaning of those letters even though it displays the SI abbreviation. Dividing the same number of bytes by a larger unit (1,099,511,627,776 bytes per "TiB" instead of 1,000,000,000,000 bytes per TB) necessarily produces a smaller displayed number — around 909 "GB" instead of 1000 "GB" for a 1 TB drive — with no bytes actually missing.
Why hex lines up with one system and not the other
Hexadecimal is fundamentally a shorthand for binary — each hex digit represents exactly four bits. 1024 is 210, a round power of two, so it's also a perfectly round value in hex: 0x400, with every higher binary prefix similarly landing on a hex value that is 1 followed only by zeros. 1000 is not a power of two, so its hex representation (0x3E8) has no such clean pattern, and neither does any decimal prefix built from it. This isn't a coincidence worth reading much into — it's simply what happens when a base-10 round number is converted into a base-16 system built entirely from powers of two.
Where each system actually gets used
Network bandwidth is consistently measured in decimal SI units — a "100 Mbps" connection means 100,000,000 bits per second, not a binary-derived figure. Storage manufacturers use decimal units for the same reason: it's the standard metric convention and, not incidentally, yields a larger-looking number than the binary equivalent for the same physical capacity. RAM capacity, by contrast, is essentially always a power of 1024 in practice, because memory is physically addressed in binary — a stick of "16 GB" RAM is, in the strict IEC sense, actually 16 GiB. That split — decimal for storage and bandwidth marketing, binary for how memory and operating systems actually compute internally — is the practical rule of thumb, even though almost none of it consistently uses the IEC-suffixed names in casual reference.