Jednostki przechowywania danych: bity, bajty, KB, MB, GB i TB
Niemal każdy kupił kiedyś dysk reklamowany jako 1 TB, podłączył go i zobaczył, że komputer pokazuje coś bliższego 931 GB. Wydaje się, że zostaliśmy oszukani, ale tak naprawdę nikt nikogo nie oszukał. Różnica wynika z dwóch odmiennych, lecz równie poprawnych sposobów liczenia bajtów, nałożonych na mylące etykiety, których branża używała niekonsekwentnie przez dziesięciolecia. Gdy zrozumiesz bity, bajty i dwie rodziny przedrostków, cały obraz nagle staje się jasny.
Ten przewodnik prowadzi przez podstawowe elementy pamięci cyfrowej, od pojedynczego bitu aż po terabajt, wyjaśnia dziesiętny i binarny system przedrostków oraz to, dlaczego oba istnieją, a także rozwiewa codzienne nieporozumienia dotyczące rozmiarów dysków i prędkości internetu. Celem jest to, byś już nigdy nie musiał kwestionować żadnej liczby związanej z przechowywaniem danych.
Bity i bajty: fundament
Najmniejszą jednostką informacji cyfrowej jest bit, skrót od binary digit (cyfra dwójkowa). Bit przechowuje pojedynczą wartość: 0 lub 1. Sam w sobie bit nie może przedstawić wiele, więc komputery grupują je razem. Standardową grupą jest bajt, który ma dokładnie 8 bitów. Mając 8 bitów, można utworzyć 2 do potęgi 8, czyli 256 różnych kombinacji, co wystarczy do przedstawienia pojedynczego znaku tekstu w starszych kodowaniach, jednego z 256 odcieni szarości albo liczby od 0 do 255.
Dwie konwencje są źródłem zaskakująco wielu nieporozumień, dlatego warto utrwalić je sobie już na początku:
- Wielka litera B prawie zawsze oznacza bajty, podczas gdy mała litera b oznacza bity. Zatem KB to kilobajty, a Kb to kilobity.
- 1 bajt = 8 bitów. Aby zamienić bity na bajty, dzielisz przez 8; aby zamienić bajty na bity, mnożysz przez 8.
- Rozmiary plików podaje się w bajtach (i ich wielokrotnościach), natomiast prędkości transferu danych, takie jak prędkość internetu, podaje się zwykle w bitach na sekundę.
- Nibble to połowa bajta, czyli 4 bity, i pojawia się czasem przy omawianiu pojedynczych cyfr szesnastkowych.
Przedrostki dziesiętne: KB, MB, GB, TB
Znane przedrostki metryczne kilo, mega, giga i tera pochodzą z Międzynarodowego Układu Jednostek Miar (SI), utrzymywanego przez BIPM, gdzie zawsze oznaczają potęgi liczby 1000. Zastosowane do bajtów, ta dziesiętna konwencja daje czyste, okrągłe liczby:
- 1 kilobajt (KB) = 1000 bajtów = 10 do 3. potęgi bajtów
- 1 megabajt (MB) = 1000 KB = 1 000 000 bajtów = 10 do 6. potęgi bajtów
- 1 gigabajt (GB) = 1000 MB = 1 000 000 000 bajtów = 10 do 9. potęgi bajtów
- 1 terabajt (TB) = 1000 GB = 1 000 000 000 000 bajtów = 10 do 12. potęgi bajtów
To jest system stosowany przez producentów pamięci, gdy drukują pojemność na pudełku. Dysk oznaczony jako 1 TB rzeczywiście zawiera bilion bajtów, dokładnie tak, jak obiecuje definicja tera w układzie SI. To także system używany przez macOS oraz większość sprzętu sieciowego i telekomunikacyjnego. Ponieważ przedrostki są zgodne z resztą świata metrycznego, jednostki dziesiętne łatwo się skaluje: każdy kolejny krok mnoży przez 1000, tak samo jak w przypadku metrów i gramów.
Przedrostki binarne: KiB, MiB, GiB, TiB
Komputery jednak adresują pamięć w potęgach dwójki, więc jednostka 1024 (czyli 2 do 10. potęgi) jest dla nich znacznie bardziej naturalna niż 1000. Przez dziesięciolecia programiści po prostu zapożyczali przedrostki metryczne i po cichu je przedefiniowywali, tak że kilobajt często oznaczał 1024 bajty, a nie 1000. To nadawanie podwójnego znaczenia jest źródłem zamieszania. Aby to naprawić, Międzynarodowa Komisja Elektrotechniczna (IEC) wprowadziła w 1998 roku osobne przedrostki binarne:
- 1 kibibajt (KiB) = 1024 bajty = 2 do 10. potęgi bajtów
- 1 mebibajt (MiB) = 1024 KiB = 1 048 576 bajtów = 2 do 20. potęgi bajtów
- 1 gibibajt (GiB) = 1024 MiB = 1 073 741 824 bajtów = 2 do 30. potęgi bajtów
- 1 tebibajt (TiB) = 1024 GiB = 1 099 511 627 776 bajtów = 2 do 40. potęgi bajtów
Wzorzec jest taki sam jak w systemie dziesiętnym, ale każdy krok mnoży przez 1024 zamiast przez 1000. Nazwy są celowo brzydkie, aby nie można ich było pomylić z wersjami metrycznymi: kibi łączy kilo z binary, mebi łączy mega z binary i tak dalej. Ściśle rzecz biorąc, gdy masz na myśli 1024 bajty, powinieneś pisać KiB, a gdy masz na myśli 1000 bajtów, powinieneś pisać KB. W praktyce wiele systemów operacyjnych i aplikacji nadal wyświetla GB, choć w rzeczywistości liczy w gibibajtach, i właśnie tam rodzi się słynna rozbieżność rozmiaru dysku.
Dlaczego dysk 1 TB pokazuje około 931 GB
Oto rozwiązanie zagadki. Producent liczy w systemie dziesiętnym, więc dysk 1 TB mieści 1 000 000 000 000 bajtów. Windows natomiast podaje pojemność w systemie binarnym, ale oznacza ją wyglądającym dziesiętnie skrótem GB. Aby uzyskać swoją liczbę, dzieli rzeczywistą liczbę bajtów przez 1 073 741 824 (liczbę bajtów w jednym gibibajcie):
- Zacznij od rzeczywistej pojemności: 1 000 000 000 000 bajtów.
- Podziel przez 1 073 741 824, aby wyrazić ją w gibibajtach: 1 000 000 000 000 / 1 073 741 824 = około 931,32.
- Windows wyświetla ten wynik jako 931 GB, choć w rzeczywistości jest to 931 GiB.
Żadna pamięć nie znika. Dysk mieści dokładnie obiecany bilion bajtów; system operacyjny po prostu mierzy te bajty linijką opartą na 1024, a wypisuje etykietę opartą na 1000. Ten sam efekt wyjaśnia, dlaczego telefon o pojemności 256 GB pokazuje około 238 GiB całkowitej przestrzeni, zanim jeszcze system operacyjny zabierze swoją część, oraz dlaczego karta pamięci 64 GB formatuje się do około 59,6 GiB.
Przepustowość: bity, a nie bajty
Prędkości internetu i sieci dodają jeszcze jeden zwrot akcji: mierzy się je w bitach na sekundę, a nie w bajtach. Reklamowane łącze 100 Mb/s przesyła 100 megabitów na sekundę, ale pliki, które pobierasz, mierzy się w megabajtach. Aby przewidzieć rzeczywistą prędkość pobierania, podziel prędkość w bitach przez 8:
- 100 Mb/s / 8 = 12,5 MB/s, więc plik o rozmiarze 1,25 GB pobiera się przy pełnej prędkości w mniej więcej 100 sekund.
- 1 Gb/s / 8 = 125 MB/s w teorii, przed uwzględnieniem rzeczywistych narzutów.
- Łącze 25 Mb/s dostarcza około 3,125 MB/s.
- Narzuty wynikające z protokołów, Wi-Fi i ograniczeń serwera oznaczają, że zwykle zobaczysz nieco mniej niż maksimum teoretyczne.
Dlatego menedżer pobierania pokazujący 12 MB/s na łączu 100 Mb/s działa dokładnie tak, jak należy, a nie z jedną ósmą prędkości, za którą zapłaciłeś. Zwracaj uwagę na to, czy dana wartość używa wielkiej litery B czy małej litery b, ponieważ ta jedna litera zmienia znaczenie ośmiokrotnie.
Częste błędy i praktyczne wskazówki
Większość błędów dotyczących pamięci i prędkości wynika z kilku nawyków. Uważaj na nie, a twoje liczby pozostaną wiarygodne:
- Mylenie bitów i bajtów. Mb/s to megabity na sekundę; MB/s to megabajty na sekundę. Podziel bity przez 8, aby otrzymać bajty.
- Zakładanie, że KB zawsze oznacza 1024 bajty. To zależy od kontekstu: etykiety pamięci i macOS używają 1000, podczas gdy rozmiary plików w Windows i RAM używają 1024.
- Myślenie, że dysk stracił pojemność. Wszystkie bajty są na miejscu; zmieniła się tylko jednostka użyta do ich wyświetlenia.
- Mieszanie rodzin przedrostków w jednym obliczeniu. Wybierz system dziesiętny (KB, MB, GB) albo binarny (KiB, MiB, GiB) i trzymaj się go konsekwentnie.
- Zapominanie, że RAM jest zawsze binarny. Moduły pamięci mają rozmiary w potęgach dwójki, więc 8 GB RAM to naprawdę 8 GiB.
W przypadku codziennych szacunków różnica między systemem dziesiętnym a binarnym jest niewielka na poziomie kilobajta, gdzie wynosi około 2,4 procent, ale rośnie wraz ze skalą: sięga około 4,9 procent na poziomie megabajta, około 7,4 procent na poziomie gigabajta i prawie 10 procent na poziomie terabajta. W pracy zawodowej, takiej jak udostępnianie pamięci, rozliczanie danych czy planowanie pojemności, sprawdź, której definicji używa narzędzie lub umowa, ponieważ te 10 procent może przełożyć się na realne pieniądze albo nieudaną kopię zapasową.
Gdy potrzebujesz przeliczać między bajtami, kilobajtami, megabajtami, gigabajtami i ich binarnymi odpowiednikami bez liczenia potęg dwójki w głowie, nasz konwerter pamięci masowej obsługuje zarówno system dziesiętny, jak i binarny, dzięki czemu możesz je porównać obok siebie i dokładnie zobaczyć, gdzie liczby się rozchodzą.