Binary vs Decimal Data Units: Bytes, Kibibytes, and Why 1 GB ≠ 1 GiB
A "1 TB" hard drive shows as 931 GB on your computer because two unit conventions compete for the same prefix. This guide explains decimal SI vs binary IEC and how to read storage figures correctly.
Published March 25, 2026 · Updated May 6, 2026
Two conventions, one prefix
Data-storage conversions have an unusual problem: two competing conventions assign different values to the same prefix. The decimal SI interpretation defines 1 kilobyte as exactly 1000 bytes, with each subsequent prefix multiplying by another 1000 — 1 MB = 1,000,000 bytes, 1 GB = 1,000,000,000 bytes, 1 TB = 1,000,000,000,000 bytes. The binary IEC interpretation defines 1 kibibyte as exactly 1024 bytes (2^10), with each subsequent prefix multiplying by another 1024 — 1 MiB = 1,048,576 bytes, 1 GiB = 1,073,741,824 bytes, 1 TiB = 1,099,511,627,776 bytes. The two conventions diverge by about 2.4% per scale step, accumulating to 9.5% by the TB scale, and the divergence explains the most common consumer storage confusion: why a "1 TB" hard drive shows up as 931 GB on most computer file browsers.
Where the confusion came from
Early computer engineers in the 1960s noticed that 1024 bytes (2^10) was very close to the decimal kilobyte and started using "kilobyte" loosely to mean either 1000 or 1024 bytes depending on context. Memory addressing in computer architecture is inherently binary — addresses come in powers of 2 because each bit doubles the address space — so memory capacities like "64 KB of RAM" naturally meant 65,536 bytes (64 × 1024) rather than 64,000 bytes. Hard-drive manufacturers, on the other hand, marketed capacities in decimal SI from the start because the round-number figures looked cleaner on the box and tracked the international metric prefix system. By the 1990s, the two conventions had collided, with the same word "kilobyte" meaning different things in different contexts.
The IEC fix
In 1999, the International Electrotechnical Commission (IEC) introduced new binary prefix names to disambiguate: kibibyte (KiB) for 1024 bytes, mebibyte (MiB) for 1024² bytes, gibibyte (GiB) for 1024³ bytes, tebibyte (TiB) for 1024⁴ bytes. The naming convention took the first two letters of each SI prefix (kilo→ki, mega→me, giga→gi, tera→te) and added "bi" for binary, producing kibi, mebi, gibi, tebi. The IEC's intent was that "kilobyte" would strictly mean the decimal 1000 bytes and "kibibyte" would mean the binary 1024 bytes, with the SI prefixes (KB, MB, GB, TB) reserved for the decimal interpretation and the IEC prefixes (KiB, MiB, GiB, TiB) reserved for the binary interpretation. Adoption has been gradual: cloud-storage vendors and HDD manufacturers use decimal SI throughout, Linux file managers display binary IEC, and Windows still uses the older "GB = 1024 MB" convention with no conversion to the new naming.
Where the gap shows up
The most visible consumer impact is the storage-capacity mismatch. A hard-drive manufacturer labels a drive "1 TB" using decimal SI (1,000,000,000,000 bytes), but Windows displays the same drive as "931 GB" using the binary interpretation (1 TiB = 1,073,741,824,000 bytes). The user reads the discrepancy as 69 GB of "missing" capacity and assumes the drive is defective or the manufacturer is misleading. Neither is true: the drive contains exactly 1 trillion bytes as advertised, and Windows is displaying those bytes using the binary convention with the SI prefix label. The combination produces the apparent shortfall.
The same gap appears in cloud storage: AWS S3, Azure Blob, Google Cloud Storage all bill in decimal SI, with a "1 TB" stored equating to exactly 1,000,000,000,000 bytes. Email-attachment limits, file-size displays in modern browsers, and media-codec bitrate specs all use decimal SI. Operating-system displays, especially on Windows, often use the binary interpretation while keeping the SI prefix label, producing the inconsistent reading.
Why memory uses binary
Computer RAM is allocated in powers of 2 because the underlying address-bus width is binary. A 32-bit address bus addresses 2^32 = 4,294,967,296 bytes, exactly 4 GiB in binary SI prefixes; a 64-bit address bus addresses 2^64 bytes, equivalent to 16 EiB (exbibytes). Memory-stick capacities sold as "8 GB" or "16 GB" or "32 GB" are actually 8 GiB, 16 GiB, 32 GiB in the binary interpretation — the manufacturer uses the SI prefix label out of marketing convention, but the underlying capacity is binary. The same is true of CPU cache sizes, GPU memory, and most operating-system memory reporting.
Why storage uses decimal
Hard-drive and SSD manufacturers use decimal SI labelling because the magnetic-platter or flash-memory cell count maps cleanly to decimal byte counts at the manufacturing level, and decimal labelling produces the marketing-friendly "1 TB" rather than the cumbersome "0.909 TiB" for the same drive. The decision is not a conspiracy to overstate capacity; it is a consistent application of the SI prefix system to a manufacturing context where binary blocking is not architecturally required. Cloud storage follows the same convention because it makes per-GB pricing arithmetic clean and removes the binary-vs-decimal ambiguity from billing.
How to read storage labels
When you see "1 TB" on a hard-drive box, interpret it as decimal SI: 1,000,000,000,000 bytes exactly. When you see "1 TiB" with the explicit binary prefix, interpret it as 2^40 = 1,099,511,627,776 bytes. When the OS displays "931 GB" for the same physical drive, recognise that Windows is using the binary interpretation with the SI prefix label — the underlying byte count matches the decimal-SI 1 TB figure, just displayed using a different convention. The "missing" capacity is unit-system difference plus the small additional overhead from filesystem metadata, partition tables, and bad-block reserves.
Bandwidth and bits
Network bandwidth uses decimal SI universally and measures bits per second rather than bytes per second. A 1 Gbps network link transfers 1,000,000,000 bits per second, which equals 125,000,000 bytes per second or 125 MB/s — at the theoretical maximum, before protocol overhead reduces real-world throughput to about 940 Mbps or 117.5 MB/s. The bits-vs-bytes distinction adds another factor of 8 to the conversion, and the network/storage boundary is where most consumer bandwidth confusion appears. A "1 GB file on a 100 Mbps connection" takes 8000 ÷ 100 = 80 seconds at theoretical maximum, not 10 seconds (the wrong answer that comes from confusing bits with bytes).
When to use which convention
Use decimal SI (KB, MB, GB, TB with the 1000-multiplier interpretation) for cloud storage, hard-drive labelling, network bandwidth, and any context where the audience expects marketing or contract-tier figures. Use binary IEC (KiB, MiB, GiB, TiB with the 1024-multiplier interpretation) for memory capacity, file sizes in some technical contexts, and any context where the binary architecture matters. When in doubt, prefer the explicit IEC prefix (KiB, MiB) because it removes ambiguity entirely; the older "KB" label is unfortunately still used both ways and requires context to disambiguate.