Bity a bajty

Jednou z důležitých součástí počítače je paměť, ve které si můžeme ukládat naše data – písničky, filmy, dokumenty, fotky, zkrátka data, která chceme uchovat do budoucna.

Základní jednotkou paměti je bit (z anglického bit – kousek, troška), který rozlišuje pouze dva stavy: jedničku a nulu (nebo třeba zapnuto/vypnuto jako u vypínače, přítomnost/nepřítomnost u žáka ve třídě, atp.). Zkrátka se jedná o tu nejmenší jednotku informace.

Od bitu se odvíjí jednotka bajt (z anglického byte). Bajt se skládá z osmi bitů a tedy rozlišuje 28 (256) stavů.

Obě jednotky existují vedle sebe, každou totiž používáme v jiných oblastech. Například bity používáme, bavíme-li se o sítích, tedy například o rychlostech internetového připojení. Naproti tomu bajty se používají v kontextu disků a jiných paměťových úložišť – např. kapacita úložiště v telefonu.

Předpony: kilo, mega, giga a další

Ve skutečnosti se s jednotlivými bity a bajty setkáme zřídkakdy, protože běžně pracujeme s datovými objemy mnohem většími. Stejně jako v matematice a dalších předmětech používáme i u bitů a bajtů předpony Mezinárodní soustavy jednotek (SI). Ty nejfrekventovanější najdeš v tabulce níže.

PředponaZnačkaHodnota
kilok1 000 (103)
megaM1 000 000 (106)
gigaG1 000 000 000 (109)
teraT1 000 000 000 000 (1012)

Tisíc bajtů je jeden kilobajt (psáno 1 kB), tisíc bitů (tj. osmina) je jeden kilobit (1 kb). Dnešní zařízení (telefony, počítače) mají běžné úložiště o stovkách gigabajtů (GB) až o jednotkách terabajtů (TB) – tedy těžko představitelné trilióny bajtů.

Za jak dlouho zkopírujeme 40 MB soubor při 20 kB/s? (Výsledek se ti ukáže po kliknutí.)

Stačí nám vydělit velikost souboru (v kB) rychlostí přenosu: 40 00020=2000

Soubor zkopírujeme za 2000 sekund.

Kdybys měl náhodou pocit, že je vše až podezřele jasné, hned to napravíme. Bity jsou z definice binární – rozlišují pouze dvě hodnoty. Skládáním více bitů k sobě násobíme počet postihnutelných hodnot dvěma. Bajt je, jak jsme si řekli, osm bitů, tj. rozlišuje 256 hodnot. Devět bitů nám dá 512 (29) možností a 10 bitů celých 1024 (210) možností a tak dále. Vždy ve výsledku dostaneme mocninu dvojky.

V případě předpon SI, které jsme si uvedli nahoře, ale mocninu dvojky vždycky nedostaneme. Vezmi si takový kB, tedy 1000 bajtů, tedy 8000 bitů. Ani jedno z těchto čísel neumíme vyjádřit mocninou dvojky – nejblíže je 1024 (210), tedy 8192 (213) bitů. To se ukázalo jako poměrně nepraktické vzhledem k tomu, že architektura dnešních počítačů je de facto binární, a proto byly standardizovány další předpony, které vychází z dvojkové báze.

PředponaZnačkaHodnota
kibiKi1024
mebiMi1 048 576 (10242)
gibiGi1 073 741 824 (10243)
tebiTi1 099 511 627 776 (10244)

Jeden kibibajt (1 KiB) je 1024 bajtů, respektive 8192 bitů. S těmito dvojkovými předponami se můžeme občas setkat, nicméně v praxi se častěji setkáš s tím, že se použijí klasické SI předpony, jen se jimi občas myslí ony dvojkové. Takovým typickým příkladem jsou operační paměti, kdy si v obchodě můžeš vybírat z různých kapacit v gigabajtech, ale ve skutečnosti jde o gibibajty. Běžný spotřebitel rozdíl nepozná a ti ostatní vědí, co se tím myslí.

Možná si říkáš, proč se vůbec zabývat takovými odchylkami. Zkusím to vysvětlit na jednoduchém příkladu práce počítače s pamětí. Procesor, tj. mozek počítače, může načítat a ukládat data do paměti.

Aby byl schopen načíst a uložit data ze správného místa paměti, používá tzv. adresaci – každé buňce (bloku buněk) přiřadí jednoznačnou hodnotu – adresu. Procesor má pak vlastní paměť, jejíž hodnota odpovídá adrese paměti, se kterou pracuje.

Řekněme si, že tato adresu určující paměť je složena z deseti bitů, takže může nabývat 210 = 1024 hodnot. Kdybychom adresovali každý bajt, tak bychom mohli připojit paměť s kapacitou 1024 bajtů. V případě, že bychom připojili paměť o 1 kB, tedy 1000 B, tak by nám zůstalo 24 adres nevyužitých, což by bylo zbytečné plýtvání. Zvlášť v situaci, kdy dnes máme běžně k dispozici alespoň vyšší jednotky až nižší desítky gigabajtů.

Shrnutí

  • základní jednotkou informace je bit, který značíme malým b a rozlišuje pouze dvě hodnoty: 0, 1
  • druhou jednotkou je bajt, který značíme velkým B a který odpovídá 8 bitům
  • pro bity a bajty používáme předpony SI – kb, kB, Mb, MB, Gb, GB, etc.
  • předpony SI jsou definovány mocninami desítky, bity a bajty jsou povahou dvojkové, proto byly zavedeny dvojkové předpony: Mi (mebi), Gi (gibi) a další

Na konci této kapitoly bys měl být schopen:

  • najít si a spočítat, kolik bajtů paměti je ve tvém telefonu
  • dokázat spočítat, jak dlouho bude trvat zkopírování 20 MB souboru rychlostí 40 kB/s
  • říct, o kolik bitů je 7 KiB větších než 6 KB