środa, 16 kwietnia 2014

Jaka jest różnica między bitem i bajtem, megabitem i megabajtem. Jak je przeliczać i czym różnią się one od trylobitów :)

 Mały tutek dot. podstaw informatyki ;)


Przeglądając artykuły związane z szeroko pojętą informatyką, lub po prostu cenniki sprzętu komputerowego, możemy spotkać się z różnymi jednostkami opisującymi prędkość łącza, rozmiar dysku twardego, pendrajwa itd.
Są to bity, kilobity, megabity, bajty, kilobajty, megabajty, gigabajty, a ostatnio coraz częściej także terabajty. Jak jest więc między nimi różnica?

1. Bit i jego wielokrotności

Zacznijmy od początku. A na samym początku był bit ...
Bit, czy najmniejsza jednostka informacji przyjmuje wartość 0 lub 1 i w gruncie rzeczy tyle możemy dzięki niemu zdefiniować. W informatyce do określania "sensownych" wielkości potrzebne są większe jednostki. Wtedy używa się:
  • kilobit (skrót "Kb" lub "Kbit") czyli 1024 bity, 
  • megabit (skrót "Mb" lub "Mbit") czyli 1024 kilobity, czyli 1048576 bity,
  • gigabit (skrót "Gb" lub "Gbit") czyli 1024 megabity, czyli 1048576 kilobity, czyli  1073741824 bity. 
Kilobity, megabity lub gigabity, jak przedstawiono w powyższym wypunktowaniu, są niczym innym jak kolejnymi mnożnikami pojedynczego bita. W celu zmiany jednostki z mniejszej na większą, np. z Kb na Mb należy je podzielić przez 1024 i analogicznie, aby uzyskać efekt odwrotny, czyli przeliczyć jednostkę większą na mniejszą, np. Gb na Mb wystarczy je pomnożyć przez 1024 (dlaczego jest to mnożenie przez 1024, a nie tradycyjnie przez 1000, nie będę tutaj tłumaczył, gdyż zbytnio bym zagmatwał sprawę - jeżeli jednak ktoś jest dociekliwy to wystarczy w Wikipedii wpisać "kilobit" i przeczytać artykuł).
Bity i ich kolejne wielokrotności używane są do określania przepustowości łączy (np. Internetowych, czy sieci LAN). Wtedy prędkość podawana jest w jednej z przedstawionych jednostek w przeliczeniu na sekundę,  na przykład:
Jeżeli chodzi o łącza internetowe, to średnia prędkość dla Polski wg www.netindex.com wynosi 20.1Mb/s (wg stanu na dzień 11.04.2014r.) Jest to 1 5 prędkości sieci Fast Ethernet, ale tak naprawdę ile? Z jaką prędkością mogę pobierać pliki przy takim łączu lub jak dużo czasu zajęłoby pobranie przez takie łącze obrazu płyty CD "ważącej" 700 MB (megabajtów)?

No właśnie... Tutaj zaczyna się problem. Prędkości sieci, w tym łączy internetowych podawane są w wielokrotnościach bitów, natomiast do określenia pojemności płyty CD użyto "megabajtów". Nie megabitów, ale megabajtów.

2. Bajt i wielokrotności

Wytłumaczmy zatem czym jest bajt.
Bajt, czyli najmniejsza adresowalna jednostka pamięci komputerowej (to z Wikipedii:) ) składa się z ośmiu bitów. Z wcześniejszego zdania najważniejsze dla nas jest to, że:

1 bajt = 8 bitów
Przedstawiając dalej jednostkę bajt należy podać, iż ona - tak samo jak bit - ma swoje wielokrotności, które przedstawiono poniżej:
  • kilobajt (skrót "KB" lub "KB") czyli 1024 bajty,
  • megabajt (skrót "MB") czyli 1024 kilobajty, czyli 1048576 bajty,
  • gigabajt (skrót "GB") czyli 1024 megabajty, czyli 1048576 kilobajty, czyli 1073741824 bajty,
  • terabajt (skrót "TB") czyli 1024 gigabajty, czyli 1048576 megabajty, czyli 1073741824 kilobajty, czyli 1099511627776 bajty.
Jednostki "bajtowe" wykorzystywane są powszechnie do określania pojemności pamięci RAM, dysków twardych (chociaż akurat w tym przypadku producenci stosują pewną "sztuczkę" o której napiszę w dalszej części), pendrajwów.

3. Przykłady obliczeń 

3.1. Weryfikowanie prędkości posiadanego łącza internetowego

Spróbujmy teraz przeliczyć prędkość pobierana dowolnego pliku w stosunku do prędkości łącza internetowego (do weryfikowania prędkości łącza można także użyć gotowych stron internetowych jak np. OOKLA speedtest).
Dzięki temu przykładowi możemy sprawdzić, czy nasz dostawca internetu nie oszukuje nas sprzedając nam łącze np. 100Mb/s, podczas gdy prędkości wyświetlane w menedżerze pobierania mówią coś zupełnie innego.


Menedżer pobierania przeglądarki Opera
Menedżer pobierania przeglądarki Opera
  1. Z powyższego screena interesuje nas prędkość z jaką pobierany jest plik (843 KB/s). Teraz zamieniamy kilobajty (KB) na kilobity (Kb). W tym celu mnożymy prędkość pobierania plików przez 8.

    843 kilobajtów * 8 (tyle bitów mieści się w bajcie) = 6744 kilobitów

  2. Teraz osiągnięty wynik wystarczy podzielić przez 1024, aby z kilobitów uzyskać megabity, bowiem w takich jednostkach określana jest prędkość łączy internetowych.

    6744 kilobitów / 1024 = 6,58 Mb
Jak więc widać, prędkość pobierania wynosząca 843 KB/s stanowi 6,58 Mb/s, co akurat w przypadku mojego łącza (7 Mb/s) jest wynikiem jak najbardziej prawidłowym.

3.2. Obliczenie czasu potrzebnego do pobrania określonej ilości danych przez posiadane łącze internetowe

W takim razie możemy łatwo powrócić do zadanego wcześniej pytania - w jakim czasie uda nam się pobrać obraz płyty ważącej 700 MB (megabajtów) przez łącze o prędkości ~ 20 Mb/s (megabitów na sekundę)?
  1. Najpierw zamieńmy megabajty na megabity. W tym celu musimy po prostu wykonać mnożenie.

    700 MB (megabajtów) * 8 (liczba bitów w bajcie) = 5600 Mb (megabitów) 

    Otrzymany wynik to nic innego jak rozmiar płyty przekonwertowany z megabajtów na megabity.
  2. Teraz wystarczy otrzymany wynik, czyli 5600 Mb, podzielić przez prędkość łącza tj. 20 Mb/s

    5600 Mb (pojemność płyty CD w megabitach) / 20 Mb (prędkość łącza internetowego na sekundę) = 280 s.

    Otrzymany wynik to czas w sekundach potrzebny do przesłania płyty CD przez łącze o prędkości 20 Mb/s.
Teraz już, dla zwykłej czytelności wyniku, możemy go podzielić przez 60, aby uzyskać ilość minut

280 (sekund) / 60 (ilość sekund w minucie) = 4,66

Tylko co to nam wyszedł za wynik? :) Jak może być 4 minuty i 66 sekund? :) 
Nie, to nie jest 4 minuty i 66 sekund, ale 4 i 66 setnych minuty. Ilość minut z pewnością się nie zmieni, ale ile to jest 0,66 z minuty?

0,66 * 60 (ilość sekund w minucie) = 39,6 sekundy

Teraz już mamy całkiem czytelny wynik i wiemy, że płyta CD o pojemności 700 MB, przez łącze o prędkości 20 Mb/s, zostanie pobrana w 4 minuty i 39 sekund. 

A teraz mały Off-top

Jeżeli ktoś dotarł do tego miejsca, to wie zapewne (mam nadzieję...) czym jest bit, bajt i ich wielokrotności. Czym się one różnią od trylobitów wymienionych w tytule?
Otóż wszystkim ;) Trylobity (definicja Wikipedii dostępna tutaj), to po prostu pradawne, wymarłe już dawno żyjątka :) Zrobiłem sobie taką małą grę słowną łącząc bity, kilobity i trylobity razem :)

Wspomniałem też o "sztuczkach", które stosowane są przez producentów dysków twardych. Wyjaśnię o co chodzi.
Tak jak napisałem wcześniej, domyślnie do określania pojemności dysków twardych używa się jednostek takich jak gigabajty i terabajty w rozumieniu, że 1 GB = 1024 MB, zaś 1 TB = 1024 GB. Taka też konwencja stosowana jest do przedstawiania rozmiaru nośników danych w systemach operacyjnych jak np. Windows, czy Linux. Tymczasem producenci stosują przelicznik wynoszący 1 GB = 1000 MB i 1 TB = 1000GB.

Informacja o pojemności dysku twardego naklejona na pudełku laptopa HP
Informacja o pojemności dysku twardego naklejona na pudełku laptopa HP

Wydawać by się mogło, że jest to niewielka różnica. Jeżeli jednak kupimy dysk o pojemności 1 TB (terabajta) to spodziewamy się otrzymać:

1 TB = 1024 GB = 1048576 MB = 1073741824 KB = 1099511627776 bajtów

Tymczasem kupując dysk twardy otrzymujemy:

1 TB = 1000 GB = 1000000 MB = 1000000000 KB = 1000000000000 bajtów

co daje nam różnicę wynoszącą:

1099511627776 - 1000000000000 = 99511627776 bajtów (92,67 GB)

Jak więc widać przez taki drobny zabieg na jednoterabajtowym dysku twardym tracimy prawie 100 GB powierzchni.

Tym oto małym tutorialem, mam nadzieję, że przybliżyłem zainteresowanym różnicę między bitami i bajtami.

34 komentarze:

  1. Dziekuję bardzo, wszystko wyjaśnione krok po kroku :-)

    OdpowiedzUsuń
  2. Proszę bardzo ;) Cieszę się, że pomogłem ;)

    OdpowiedzUsuń
  3. taki tam maly "babok" 99511627776 bajtów (92,67 GB) ???

    OdpowiedzUsuń
  4. gościu jesteś koksem dzięki za te wytłumaczenie

    OdpowiedzUsuń
  5. ty musisz mieć naprawdę wielki talent skoro wyjaśniłeś to nawet mi: ułomnej amebie :)

    OdpowiedzUsuń
  6. Super, slicznie dziekuje! dodaje strone do ulubionych!

    OdpowiedzUsuń
  7. Jako 52 letni analfabeta komputerowy dziękuję za zrozumiały wykład.

    OdpowiedzUsuń
  8. Witam,
    W pierwszych słowach dziękuję za bardzo zrozumiały, prosty wykład. Super.
    Piszę z prośbą o pomoc w zrozumieniu informacji dotyczących funkcjonowania dysków SSD z interfejsem M.2.
    Proszę o komentarz dotyczący prędkości przesyłu danych.
    Problem dotyczy dwóch poniższych linków:
    http://www.komputerswiat.pl/poradniki/sprzet/dyski-twarde/2014/11/dyski-ssd-interfejs-m2-co-warto-o-nim-wiedziec.aspx
    http://ark.intel.com/pl/products/77950/Intel-SSD-530-Series-360GB-M_2-80mm-SATA-6Gbs-20nm-MLC
    W artykule z KomputerŚwiat jest podana informacja: "Odczyt danych z tego typu konstrukcji przekracza 700 MB/s. Jest to dużo więcej niż maksymalna przepustowość SATA III." (dotyczy interfejsu M.2)
    Natomiast na stronie katalogowej Intela jest podana informacja dotycząca interfejsu SATA III: "SATA 3.0 6Gb/S"
    Jeżeli przeliczymy "SATA 3.0 6Gb/S":
    6Gb/s / 8 * 1024 = 768MB/s
    I pytanie gdzie jest błąd.
    Może ja go gdzieś robię ?
    Pozdrawiam, Jacek

    OdpowiedzUsuń
    Odpowiedzi
    1. Cześć Jacku.

      Jeżeli dobrze zrozumiałem Twoje pytanie, to chodzi prawdopodobnie o to, że
      SATA3 teoretycznie oferuje przesył 6Gb/s co daje 768MB/s w teorii, ALE w rzeczywistości w "standardzie SATA przesyłane dane są kodowane w systemie 8/10, czyli 10 bitów do przesłania na 8 bitów informacji użytecznej" (to z wikipedii). Dlatego też rzeczywista prędkość standardu SATA3 wynosi 4,8Gb/s czyli 600MB.

      W takiej sytuacji przekraczanie rzeczywistego transferu 700MB/s w przypadku M.2. jest faktycznie znaczącą poprawą (ponad 100MB/s) w stosunku do SATA3.

      Pozdrawiam serdecznie ;)
      Daniel.

      Usuń
    2. Tak, dokładnie o to chodziło. Bardzo dziękuję. Po prostu brakowało dodatkowych informacji.
      Czy jest jakaś książka, która wprowadzała by w podstawy architektury komputera, którą byś polecił ?

      Przy okazji - zdrowych i pogodnych świąt.
      Pozdrawiam,
      Jacek

      Usuń
    3. Ciesze się, że mogłem Ci pomóc :) Co do książki - nie mam nic ciekawego co mógłbym Ci polecić, ale zerknij do księgarni helion.pl i tam poszukaj. Może coś ciekawego trafisz.

      Również zdrowych i pogodnych świąt :)

      Usuń
  9. Bardzo dziękuję, kto szuka ten znajdzie.Własnie tego zagadnienia szukałam.Pozdrawiam Ewa.

    OdpowiedzUsuń
    Odpowiedzi
    1. Ewo to ja dziękuję za zaglądniecie na bloga i ciesze się, że mogłem pomóc :)

      Usuń
  10. Dziękuję, że Ci się chciało. Przystępnie i pedagogicznie.

    OdpowiedzUsuń
  11. Prosto i zrozumiale. Dzięki

    OdpowiedzUsuń
  12. Teraz już wszystko jasne, dziękuje za klarowne wytłumaczenie

    OdpowiedzUsuń
  13. Dzięki serdeczne Panu za ten wpis:-)

    OdpowiedzUsuń
  14. Niby wszystko jasne, ale ja się już w tym zagmatwałem. Szybkość internetu 150 Mbit/s daje ile Mb/s?

    Jeżeli mam na obecnej umowie z Orange do 80Mb (wiem, kluczowe DO), a osiągam do 32Mb, a mam na kompie na kablu 3.2Mb, to jak to mam rozumieć? Ile osiągam MB/s na kompie na kablu? I czy mam się czuć oszukany przez Orange, że mam te 3.2Mb w docelowym urządzeniu, a nie 32Mb?

    OdpowiedzUsuń
  15. I to by wyjaśniło to dlaczego większość ludzi (w tym ja do dzisiaj) zgłasza operatorom że ich Internet jest "słaby". A ci tylko żerują na niewiedzy i nie podają że 8Mb to tak naprawde 1MB tylko piszą jeszcze że prędkość 8MB i sądzą że się ktoś skusi... Tak jak ja i mój ojciec podczas podpisywania już kolejny raz umowy rok temu :)

    OdpowiedzUsuń
  16. Witaj Daniel,

    Super strona i bardzo dobrze wszystko tłumaczysz. Dodałbym od siebie tylko jedno, małe uaktualnienie odnośnie producentów. Łatwiej wg mnie jest dzielić 1TB (1000000000000 Bajtów u producentów) przez 1024. Dzięki temu od razu otrzymujemy rzeczywistą pojemność danego nośnika. Jeśli chcemy kupić dysk 1TB i wiedzieć ile GB zobaczy system, wykonujemy następujące obliczenie:

    1 TB = 1000000000000 Bajtów / 1024 / 1024 / 1024 = ~931,32 GB

    Oczywiście z Twojego wyliczenia też to wynika i jest ono z pewnością "logiczniejsze", ale potrzeba wtedy trochę więcej działań ;)

    To tylko taka mała uwaga od kogoś, kto dawno, dawno temu bawił się jeszcze cyferkami i literkami w starym, poczciwym DOSie :)

    Pozdrawiam!

    P.S. Trochę "off topic" ale... Na początku lat 90-tych przeczytałem w magazynie Bajtek wywiad z Sid'em Meier'em. Koleś napisał "Za około 10 lat w każdym domu będzie przynajmniej jeden komputer PC". Wtedy jako 10 latek się z tego śmiałem bo nikt w promieniu kilku km nie miał komputera (ja wtedy byłem dumnym posiadaczem Commodore Plus 4) :). Minęła dekada i po roku milenijnym każdy już prawie miał komputer a dziś? Komórki, smartfony, tablety, konsole. Jest tylko jedno ale. Ludzie dziś za dużo inwestują w sprzęt a za mało w wiedzę...

    OdpowiedzUsuń
  17. Bardzo ważne informacje dla osób reklamujących prędkość przesyłania i pobieranych danych.

    OdpowiedzUsuń
  18. Krótko i przystępnie. Dzięki !

    OdpowiedzUsuń
  19. Mętne tłumaczenie znajomych niby obeznanych z tematem wyjaśnił po "naszemu' artykuł Całą zawiłość tematu. Bardzo dziękuje. Serdecznie pozdrawiam

    OdpowiedzUsuń
  20. Świetnie opisane, już prościej i bsrdzbar zrozumiale się nie da :)

    OdpowiedzUsuń
  21. Tym oto sposobem mogłem wytłumaczyć chrzesniakowi ile czasu będzie się ściągała jego upragniona fifa 19 :D

    OdpowiedzUsuń
  22. dzięki przydatny artykuł

    OdpowiedzUsuń
  23. 1. jeśli chodzi o dyski to niestety co producent to inna metoda czasem tych metod jest parę bo np. dyski segate 1T można kupić w zależności od modelu z pojemnością rzeczywistą trochę po wyżej 1T lub w okolicy 980G i oba będą miały na obudowie 1T tu trzeba uważacz bo przy potrzebie kopiowania bit po bicie z dysku na dysk można się przejechać jak zabraknie parę Mega na nowym dysku :D
    2. przydałaby się mała aktualizacja nie wiem jak w mniejszych miejscowościach ale np tam, gdzie jest dostępne upc można se załatwić łącze 500M za ok 70zł, z którego prawię 500M ciągnie więc chyba nie jest tak źle :D

    OdpowiedzUsuń
  24. xD dobrze tak wprowadzać w błąd? 1 Kilobajt to nie jest 1024 Bajty, to 1000 bajtów. Sam użyłeś najpierw jednostek Si a dosłownie obok tego jednostki binarne (mam na myśli potęgi dwójki), musisz się zdecydować bo teraz to jest błędny "artykuł" i powinien zostać usunięty żeby nie wprowadzał dalej w bład lub poprawiony. Pozdrawiam

    OdpowiedzUsuń

Bardzo proszę o zachowanie netykiety.