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
Pojemność do przeliczenia
Przelicz pojemność między jednostkami dziesiętnymi używanymi przez producentów (kB, MB, GB, TB), binarnymi raportowanymi przez system operacyjny (KiB, MiB, GiB, TiB) i bitami stosowanymi w sieciach. Wpisz wartość, a oprócz wszystkich przeliczeń zobaczysz też, dlaczego dysk 1 TB pokazuje się w komputerze jako 931 GB.
Pojemność taka, jak na pudełku lub w systemie
TB to napis na pudełku; TiB to, co liczy system
Typowe pojemności
Pudełko kontra system operacyjny
1 TBCo mówi producent
931,3226 GB Co pokazuje system 931,3226 GiB w rzeczywistych jednostkach
Bajty1 000 000 000 000
Producent liczy 1000 GB, bo dla niego każdy przedrostek to 1000 bajtów. System operacyjny mierzy te same 1 000 000 000 000 bajtów w potęgach 1024 i pokazuje 931,3226 GB, choć w rzeczywistości jest to 931,3226 GiB: liczba na ekranie wychodzi o 6,87 % mniejsza, choć nie ubywa ani jeden bajt.
Przeliczenia
Dziesiętne (SI) · potęgi 1000
Bbajt1 000 000 000 000
kBkilobajt1 000 000 000
MBmegabajt1 000 000
GBgigabajt1000
TBterabajt1
PBpetabajt0,001
EBeksabajt0,000001
Binarne (IEC) · potęgi 1024
KiBkibibajt976 562 500
MiBmebibajt953 674,3164
GiBgibibajt931,3226
TiBtebibajt0,9095
PiBpebibajt0,0008882
EiBeksbibajt0,0000008674
Bity · 8 bitów na bajt
bitbit8 000 000 000 000
kbitkilobit8 000 000 000
Mbitmegabit8 000 000
Gbitgigabit8000
Tbitterabit8
Przedrostek po przedrostku
Przedrostek
Dziesiętnie
Binarnie
Różnica
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
Eksa
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

Przedrostki binarne KiB, MiB, GiB i TiB są znormalizowane od 1998 roku przez IEC (norma 80000-13) właśnie po to, by uniknąć tej niejednoznaczności. Linux i macOS już ich przestrzegają; Eksplorator Windows nadal opisuje jako GB to, co w rzeczywistości jest GiB.

Jak to działa

Jednostki pamięci masowej liczy się na dwa różne sposoby i oba są poprawne. System dziesiętny, którego używają producenci dysków i Międzynarodowy Układ Jednostek Miar, mnoży przy każdym przedrostku przez 1000: kB to 1000 bajtów, MB to milion, a TB to bilion. System binarny, który narodził się razem z komputerami, mnoży przez 1024, ponieważ pamięć i magistrale adresowane są w potęgach dwójki.

Problem polega na tym, że przez dziesięciolecia oba systemy używały tych samych nazw. Kiedy Eksplorator Windows pisze "GB", w rzeczywistości liczy gibibajty, czyli dzieli przez 1024 trzy razy. Dlatego dysk 1 TB, który zawiera dokładnie bilion bajtów, pojawia się na ekranie jako 931,32 GB: nic nie ginie, zmieniła się tylko miara. Od 1998 roku norma IEC 80000-13 usuwa tę niejednoznaczność przedrostkami binarnymi KiB, MiB, GiB i TiB.

To narzędzie przelicza pojemność jednocześnie na trzy rodziny jednostek —dziesiętne, binarne i bity— i pokazuje dokładną liczbę bajtów, wartość deklarowaną przez producenta oraz tę, którą wyświetli system operacyjny, wraz z procentową różnicą między nimi. Wszystkie obliczenia wykonywane są w przeglądarce.

Przykłady

1 TB931,32 GBDysk zawiera 1 000 000 000 000 bajtów, dokładnie tyle, ile obiecuje pudełko. System dzieli je trzy razy przez 1024 i pokazuje 931,32 GB, co ściśle rzecz biorąc jest 931,32 GiB. Na ekranie zdaje się brakować prawie 69 GB; na dysku nie brakuje ani jednego bajtu.
1 GiB1073741824 BGibibajt to 2^30 bajtów. Gigabajt dziesiętny to 1 000 000 000, więc binarny jest o 7,37 % większy. To ta sama różnica, która dzieli to, co masz na myśli, prosząc o "giga", od tego, co rozumie przez to każdy program.
4 TB3,64 TiBIm większy przedrostek, tym bardziej oba systemy się rozjeżdżają: 2,34 % przy kilo, 6,87 % przy giga i 9,05 % przy tera. Dlatego wrażenie "za małego dysku" nasila się właśnie przy dużych dyskach.
100 Mbit12,5 MBŁącza sieciowe mierzy się w bitach, a pamięć masową w bajtach. Łącze 100 Mbit/s pobiera maksymalnie 12,5 MB na sekundę, bo każdy bajt to 8 bitów. To jedno wyliczenie tłumaczy połowę reklamacji składanych u dostawców internetu.

Przypadki użycia

  • Zrozumieć, dlaczego dysk 1 TB albo pendrive 64 GB pokazują mniejszą pojemność, niż podano na opakowaniu.
  • Zamienić na czytelną postać rozmiar w bajtach zwracany przez API, log albo polecenie ls -l.
  • Porównać rozmiar kopii zapasowej lub obrazu między dwoma narzędziami, które mierzą inną miarą.
  • Wymiarować limity, wolumeny i ograniczenia wysyłania, gdy dokumentacja mówi w MiB, a interfejs w MB.
  • Przeliczyć prędkość łącza w Mbit/s na rzeczywistą prędkość pobierania w MB/s.
  • Wyjaśnić klientowi na liczbach, że kupiony dysk nie ma mniej miejsca, niż obiecywano.

Najczęstsze pytania

Kupiłem dysk 1 TB, a widzę 931 GB — czy zostałem oszukany?

Nie. Dysk ma 1 000 000 000 000 bajtów, a właśnie to oznacza 1 TB w systemie dziesiętnym, którego używają wszyscy producenci. Windows bierze te same bajty, dzieli je trzy razy przez 1024, otrzymuje 931,32 i podpisuje wynik jako "GB" zamiast "GiB". To problem etykiety, a nie pojemności: wszystkie bajty tam są. Naprawdę ubywa natomiast to, co system plików rezerwuje przy formatowaniu.

Jaka jest różnica między GB a GiB?

GB to 1 000 000 000 bajtów (10^9), a GiB to 1 073 741 824 (2^30). Gibibajt jest o 7,37 % większy. Ta sama zależność powtarza się na każdym poziomie: kB wobec KiB, MB wobec MiB, TB wobec TiB. Symbole binarne mają w środku literę "i" i czyta się je kibi, mebi, gibi i tebi.

Czy wszystkie systemy operacyjne pokazują to samo?

Nie, i to potęguje zamieszanie. Windows liczy w potęgach 1024, ale podpisuje wynik jako GB i TB, więc dla dysku 1 TB pokazuje 931 GB. macOS mierzy dziesiętnie od 2009 roku, dlatego ten sam dysk widnieje jako 1 TB. W Linuksie zależy to od narzędzia: df -h i ls -lh używają 1024, df -H i ls -l --si używają 1000, a wiele programów pisze już GiB tam, gdzie trzeba. Dysk nigdy się nie zmienił; zmienił się ten, kto go mierzy.

Dlaczego pamięć RAM zgadza się z tym, co pisze na pudełku?

Ponieważ pamięć produkuje się i adresuje w potęgach dwójki: moduł "16 GB" ma w rzeczywistości 16 GiB, czyli 17 179 869 184 bajty. Skoro system operacyjny też liczy binarnie, obie liczby się zgadzają i nikt niczego nie zauważa. Z dyskami jest odwrotnie: producent liczy dziesiętnie, a system binarnie, i różnica rzuca się w oczy.

O ile rośnie różnica wraz z przedrostkiem?

Narasta o 2,4 % na każdym poziomie. Liczba pokazywana przez system jest mniejsza o 2,34 % przy kilo, 4,63 % przy mega, 6,87 % przy giga, 9,05 % przy tera, 11,18 % przy peta i 13,26 % przy eksa. Dlatego przy pliku kilku kB różnica jest niezauważalna, a przy macierzy o pojemności kilku petabajtów to setki terabajtów oczekiwań.

Czy Mbit to to samo co MB?

Nie, różnica jest ośmiokrotna. Łącza sieciowe mierzy się w bitach na sekundę, a pamięć masową w bajtach, a bajt to 8 bitów. Łącze 300 Mbit/s daje najwyżej 37,5 MB/s pobierania, jeszcze przed odliczeniem nagłówków protokołów. Do tego przedrostki sieciowe są zawsze dziesiętne: Mbit to milion bitów, nigdy 1 048 576.

Dlaczego mojemu SSD brakuje jeszcze więcej miejsca?

Do różnicy między systemem dziesiętnym a binarnym dochodzą dwie rzeczy. Pierwsza to nadmiarowa rezerwa (over-provisioning): kontroler zatrzymuje część pamięci flash, niedostępną dla użytkownika, żeby zastępować zużyte bloki i przyspieszać zapis. Druga to system plików, który zaraz po formatowaniu zajmuje miejsce na tablice, dziennik i metadane. Żadna z nich nie jest usterką: to cena za to, że dysk działa i długo wytrzymuje.

Której jednostki używać zatem w dokumentacji?

Tej, która nie pozostawia wątpliwości. Jeśli wartość liczona jest w potęgach 1024, pisz MiB lub GiB; jeśli w potęgach 1000, pisz MB lub GB. W API czy pliku konfiguracyjnym najbezpieczniej podać wprost liczbę bajtów i pozwolić interfejsowi zdecydować, jak ją wyświetlić. To jedna linijka kodu, która oszczędza godziny dyskusji o tym, czemu dwa narzędzia podają różne liczby dla tego samego pliku.