Jednostki miar w komputerach

Aby wprowadzić w klimat - rozmowa dwóch informatyków:

  • Pożyczysz mi 500 zł?
  • Masz 512 dla równego rachunku...

 Jak pisze się duże liczby

Raczej nie mówi się, że ze Szczecina do Warszawy jest 500000 metrów a procesor zrobiono w technologii 0,00000009 metra.

Aby uniknąć takiej ilości zer z przodu albo z tyłu, inżynierowie i naukowcy stosują tak zwany zapis wykładniczy. Pierwsza nasza liczba do pacyfikacji to a 500000. Rozbijamy to na dwie części - 5 razy 100000. 100000 to 10^5. Całość obliczeń daje nam 500000 = 5*10^5 . Czasami fragment *10^ zamienia się na 'E' lub 'e' co daje krótki zapis 5e5. Druga liczba to 0,00000009. Rozbijamy to na 9*0,00000001 . 0,00000001 to 0.1^7, ale aby wszystko było zależne od 10 zapiszemy to jako 10^-8. Cała liczba to zatem 9*10^-8 albo 9e-8.

Zapis wykładniczy jest dla normalnego człowieka mało czytelny (ograniczenie prędkości na autostradzie to 1.1e5 metrów na godzinę), dlatego dla pierwszych trzech potęg i później co trzeciej wprowadzono specjalne nazwy:

 potęgi dodatnie

  • 10^1 = 10 - da - deka
  • 10^2 = 100 - h - hekto/hekta
  • 10^3 = 1000 - k - kilo
  • 10^6 = 1000000 - M - mega
  • 10^9 = 1000000000 - G - giga
  • 10^12 = 1000000000000 - T - tera
  • 10^15 = 1000000000000000 - E - eksa

potęgi ujemne

  • 10^-1 = 0.1 - d - decy
  • 10^-2 = 0.01 - c - centy
  • 10^-3 = 0.001 - m - mili
  • 10^-6 = 0.000001 - u - mikro
  • 10^-9 = 0.000000001 - n - nano
  • 10^-12 = 0.000000000001 - p - piko

 przykłady

  • 500000m = 500*10^3 m = 500km
  • 0,00000009m = 90*10-9 m = 90nm
  • 1.1e5m/h = 110*10^3 m/h = 110km/h

 Informatycy mieszają się w potęgi

Komputery (w każdym razie współczesne) pracują w systemie o podstawie 2 a nie 10. Ktoś kiedyś zauważył ciekawą prawidłowość:

  • 2^10 = 1024, czyli około tysiąca
  • 2^20 = 1048576, czyli około miliona
  • 2^30 = 1073741824, czyli około miliarda

i tak dalej z krokiem wykładnika co 10. Straszliwa ta osoba całkiem niepoprawnie nazwała te potęgi kilo, mega, giga, itd...

Od tego momentu kilo w komputerach mogło znaczyć zarówno 1000 (przy podawaniu masy komputera) jak i 1024 (przy podawaniu pojemności pamięci).

Rynek się cieszy

Komputery generalnie przyjmują i wyświetlają jednostki będące potęgami dwójki. W tym miejscu można spotkać istotny problem przy podawaniu pojemności dysków twardych. Producenci dysków bowiem (i, co dziwne, tylko dysków) podają pojemności dysków w potęgach 10.

I tak - dysk o pojemności 80GB ma około 80 miliardów bajtów = 80'000'000'000 bajtów. Po sformatowaniu go komputer wyświetla nagle dużo mniejszą wartość - dlatego, że dla komputera gigabajt jest większy, niż dla producenta. A większych jednostek mieści się mniej. Z 80GB producenta nagle robi się 74,5GB komputera (bo 74,5 * 1'073'741'824 to w przybliżeniu 80'000'000'000). Producenci dysków śpią spokojnie, bo w każdej książce opisującej układ jednostek SI jest napisane, że giga to 10^9... Pod naciskiem rynku zaczęli jednak pisać na dyskach, że ich GB to 10^9. albo wręcz podają pojemość także w bajtach.

Rozwiązanie

Twórcy norm zauważyli problem i podali następujące rozwiązanie:

Jednostki k, M, G i pozostałe oznaczają zawsze potęgi podstawy 10. 
Dla odróżnienia potęgi podstawy 2 mają przyrostek i (chyba od informatyczny?),
czyli przyjmują postać ki, Mi, Gi.

Według tej normy producenci dysków podają prawidłową pojemność dysku, natomiast informatycy posługują się nieprawidłowymi jednostkami - 80GB "metrycznych" powinno być pokazane jako 74,5GiB "informatycznych" a nie 74,5GB. Dzięki takiemu rozróżnieniu znikłyby wszelkie niejeznocznaczności.

bity - bajty

W informatyce (w każdym razie o terminologi odangielskiej) istnieje jeszcze jeden problem - bit i bajt zaczynają się od tej samej litery, w związku nie zawsze wiadomo w jakich jednostkach podawana jest wartość. Standard jest taki:

  • b to bit
  • B to bajt

czyli 1b to jeden bit a 1B to jeden bajt. Francuzi nie mają tego problemu, bo u nich bajt nazywa się octet i ma skrót o. Stąd na przykład CD-ki na rynek francuski mają pojemność 700Mo a nie 700MB :)

Pamiętajcie, że różnica duża-mała litera jest w informatyce bardzo istotna. Już parę razy widziałem na listach dyskusyjnych, że ktoś ma w komputerze 512mb RAMu. Ile czego?? 512 milibitów?? Poprawny zapis to 512 Mega Bajtów, czyli 512MB.