0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
Om te rekenen capaciteit
Reken een capaciteit om tussen de decimale eenheden van fabrikanten (kB, MB, GB, TB), de binaire eenheden die het besturingssysteem meldt (KiB, MiB, GiB, TiB) en de bits die netwerken gebruiken. Vul de waarde in en je ziet naast alle equivalenten ook waarom een schijf van 1 TB op de computer als 931 GB verschijnt.
De capaciteit zoals die op de doos of in het systeem staat
TB staat op de doos; TiB is wat het systeem telt
Gangbare capaciteiten
De doos tegenover het besturingssysteem
1 TBWat de fabrikant zegt
931,3226 GB Wat het systeem toont 931,3226 GiB in echte eenheden
Bytes1.000.000.000.000
De fabrikant telt 1.000 GB, want voor hem is elk voorvoegsel 1000 bytes. Het besturingssysteem meet diezelfde 1.000.000.000.000 bytes in machten van 1024 en toont 931,3226 GB, terwijl het in werkelijkheid 931,3226 GiB zijn: het getal op het scherm valt 6,87 % lager uit zonder dat er ook maar één byte verdwijnt.
Equivalenten
Decimaal (SI) · machten van 1000
Bbyte1.000.000.000.000
kBkilobyte1.000.000.000
MBmegabyte1.000.000
GBgigabyte1.000
TBterabyte1
PBpetabyte0,001
EBexabyte0,000001
Binair (IEC) · machten van 1024
KiBkibibyte976.562.500
MiBmebibyte953.674,3164
GiBgibibyte931,3226
TiBtebibyte0,9095
PiBpebibyte0,0008882
EiBexbibyte0,0000008674
Bits · 8 bits per byte
bitbit8.000.000.000.000
kbitkilobit8.000.000.000
Mbitmegabit8.000.000
Gbitgigabit8.000
Tbitterabit8
Voorvoegsel voor voorvoegsel
Voorvoegsel
Decimaal
Binair
Verschil
Kilo
1 kB1.000 B
1 KiB1.024 B
+2,4 %1 kB = 0,977 KiB
Mega
1 MB1.000.000 B
1 MiB1.048.576 B
+4,86 %1 MB = 0,954 MiB
Giga
1 GB1.000.000.000 B
1 GiB1.073.741.824 B
+7,37 %1 GB = 0,931 GiB
Tera
1 TB1.000.000.000.000 B
1 TiB1.099.511.627.776 B
+9,95 %1 TB = 0,909 TiB
Peta
1 PB1.000.000.000.000.000 B
1 PiB1.125.899.906.842.624 B
+12,59 %1 PB = 0,888 PiB
Exa
1 EB1.000.000.000.000.000.000 B
1 EiB1.152.921.504.606.847.000 B
+15,29 %1 EB = 0,867 EiB

De binaire voorvoegsels KiB, MiB, GiB en TiB zijn sinds 1998 genormeerd door de IEC (norm 80000-13), juist om deze dubbelzinnigheid te voorkomen. Linux en macOS houden zich er al aan; de Windows Verkenner noemt nog steeds GB wat in werkelijkheid GiB is.

Hoe het werkt

Opslageenheden worden op twee verschillende manieren geteld en allebei zijn ze correct. Het decimale stelsel, dat schijffabrikanten en het Internationale Stelsel van Eenheden gebruiken, vermenigvuldigt bij elk voorvoegsel met 1000: een kB is 1000 bytes, een MB een miljoen en een TB een biljoen. Het binaire stelsel, dat met de computers is ontstaan, vermenigvuldigt met 1024, omdat geheugen en bussen in machten van twee worden geadresseerd.

Het probleem is dat beide stelsels decennialang dezelfde namen gebruikten. Wanneer de Windows Verkenner "GB" schrijft, rekent hij in werkelijkheid met gibibytes, oftewel hij deelt drie keer door 1024. Daarom verschijnt een schijf van 1 TB, die precies een biljoen bytes bevat, op het scherm als 931,32 GB: er ontbreekt niets, alleen de telregel is veranderd. Sinds 1998 lost de norm IEC 80000-13 die dubbelzinnigheid op met de binaire voorvoegsels KiB, MiB, GiB en TiB.

Deze tool rekent een capaciteit tegelijk om naar alle drie de families —decimaal, binair en bits— en toont het exacte aantal bytes, het cijfer dat de fabrikant opgeeft en het cijfer dat het besturingssysteem zal tonen, met het verschil in procenten. Alle berekeningen gebeuren in de browser.

Voorbeelden

1 TB931,32 GBDe schijf bevat 1.000.000.000.000 bytes, precies wat de doos belooft. Het systeem deelt ze drie keer door 1024 en toont 931,32 GB, wat strikt genomen 931,32 GiB is. Op het scherm lijkt bijna 69 GB te ontbreken; op de schijf ontbreekt geen enkele byte.
1 GiB1073741824 BEen gibibyte is 2^30 bytes. Een decimale gigabyte is 1.000.000.000, dus de binaire is 7,37 % groter. Het is hetzelfde verschil dat scheidt wat jij bedoelt als je om "een gig" vraagt van wat elk programma eronder verstaat.
4 TB3,64 TiBHoe groter het voorvoegsel, hoe verder de twee stelsels uit elkaar lopen: 2,34 % bij kilo, 6,87 % bij giga en 9,05 % bij tera. Daarom wordt het gevoel van een "te kleine schijf" juist erger bij grote schijven.
100 Mbit12,5 MBNetwerkverbindingen worden in bits gemeten en opslag in bytes. Een verbinding van 100 Mbit/s haalt maximaal 12,5 MB per seconde binnen, want elke byte is 8 bits. Die ene berekening verklaart de helft van de klachten bij internetproviders.

Gebruiksscenario's

  • Begrijpen waarom een schijf van 1 TB of een USB-stick van 64 GB minder capaciteit tonen dan op de verpakking staat.
  • De grootte in bytes die een API, een log of het commando ls -l teruggeeft omzetten naar iets leesbaars.
  • De grootte van een back-up of een image vergelijken tussen twee tools die met verschillende maatstaven meten.
  • Quota, volumes of uploadlimieten bepalen wanneer de documentatie in MiB spreekt en de interface in MB.
  • De snelheid van een verbinding in Mbit/s omrekenen naar de werkelijke downloadsnelheid in MB/s.
  • Een klant met cijfers uitleggen dat de gekochte schijf niet minder ruimte heeft dan beloofd.

Veelgestelde vragen

Ik kocht een schijf van 1 TB en ik zie 931 GB, ben ik opgelicht?

Nee. De schijf bevat 1.000.000.000.000 bytes, en dat is wat 1 TB betekent in het decimale stelsel dat alle fabrikanten gebruiken. Windows neemt diezelfde bytes, deelt ze drie keer door 1024, komt op 931,32 uit en plakt er het etiket "GB" op in plaats van "GiB". Het is een etiketprobleem, geen capaciteitsprobleem: alle bytes zijn er. Wat wél echt verdwijnt, en dat staat er los van, is wat het bestandssysteem bij het formatteren reserveert.

Wat is het verschil tussen GB en GiB?

Een GB is 1.000.000.000 bytes (10^9) en een GiB is 1.073.741.824 (2^30). De gibibyte is 7,37 % groter. Dezelfde verhouding herhaalt zich op elk niveau: kB tegenover KiB, MB tegenover MiB, TB tegenover TiB. De binaire symbolen hebben een "i" in het midden en worden uitgesproken als kibi, mebi, gibi en tebi.

Tonen alle besturingssystemen hetzelfde?

Nee, en dat maakt de verwarring groter. Windows rekent in machten van 1024 maar zet er GB en TB bij, dus toont het 931 GB voor een schijf van 1 TB. macOS meet sinds 2009 decimaal, waardoor dezelfde schijf als 1 TB verschijnt. Op Linux hangt het van de tool af: df -h en ls -lh gebruiken 1024, df -H en ls -l --si gebruiken 1000, en veel hulpprogramma's schrijven al GiB waar dat hoort. De schijf is nooit veranderd; degene die meet wel.

Waarom klopt het werkgeheugen wél met wat op de doos staat?

Omdat geheugen in machten van twee wordt gemaakt en geadresseerd: een module van "16 GB" bevat in werkelijkheid 16 GiB, oftewel 17.179.869.184 bytes. Omdat het besturingssysteem ook binair telt, komen beide getallen overeen en merkt niemand er iets van. Bij schijven is het omgekeerd: de fabrikant telt decimaal en het systeem binair, en het verschil springt in het oog.

Hoeveel groeit het verschil per voorvoegsel?

Het stapelt zich op met 2,4 % per niveau. Het getal dat het systeem toont is 2,34 % kleiner bij kilo, 4,63 % bij mega, 6,87 % bij giga, 9,05 % bij tera, 11,18 % bij peta en 13,26 % bij exa. Daarom is het verschil bij een bestand van een paar kB niet te merken, terwijl het bij een array van meerdere petabytes honderden terabytes aan verwachting scheelt.

Is een Mbit hetzelfde als een MB?

Nee, en het verschil is een factor acht. Netwerkverbindingen worden in bits per seconde gemeten en opslag in bytes, en een byte is 8 bits. Een verbinding van 300 Mbit/s levert hooguit 37,5 MB/s aan download, nog voordat je de protocolheaders eraf trekt. Bovendien zijn netwerkvoorvoegsels altijd decimaal: een Mbit is een miljoen bits, nooit 1.048.576.

Waarom mist mijn SSD nog meer ruimte?

Bovenop het verschil tussen decimaal en binair komen nog twee dingen. Het eerste is overprovisioning: de controller houdt een deel van het flashgeheugen achter de hand, dat niet bruikbaar is, om versleten blokken te vervangen en het schrijven te versnellen. Het tweede is het bestandssysteem, dat meteen bij het formatteren ruimte opslokt aan tabellen, journal en metadata. Geen van beide is een fout: het is de prijs die je betaalt om de schijf te laten werken en meegaan.

Welke eenheid kun je dan het beste in documentatie gebruiken?

Die geen twijfel laat bestaan. Wordt de waarde met machten van 1024 berekend, schrijf dan MiB of GiB; wordt ze met machten van 1000 berekend, schrijf dan MB of GB. In een API of een configuratiebestand is het veiligst om het aantal bytes rechtstreeks te tonen en de interface te laten kiezen hoe het weergegeven wordt. Dat is één regel code die uren discussie bespaart over waarom twee tools verschillende cijfers voor hetzelfde bestand melden.