1.4. Notacja binarna. Bit i bajt
Obecnie podstawą dla zapisu liczb na całym świecie jest pozycyjny system dziesiątkowy (=decymalny). Dziesiątkowy - dlatego że opiera się na dziesięciu cyfrach (0, 1, 2, 3, 4, 5, 6, 7, 8, 9). Pozycyjny - dlatego, że kolejne pozycje liczby, licząc od prawej, oznaczają kolejne potęgi liczby 10.
Na przykład zapis „1084" należy interpretować jako:l
108410 = 1x103 + 0 xlQ2 + 8x101 + 4x100 = 1x1000 + 0x100 + 8x10 + 4xl
(przypomnijmy' tylko, że w zapisie komputerowym działanie to ma postać:
1984 = 1*10A3 + 0*10A2 + 8*1QA1 + 4*10A0).
Łatwo zauważyć sposób obliczenia tego, ile można zapisać liczb mając m cyfr i wykorzystując n znaków. Wzór ogólny: ma W systemie dziesiętnym wykorzystując trzy znaki (tzn. liczba składa się z nie więcej niż trzech cyfr) można zapisać 103 = 1000 liczb.
W przypadku komputerów, które są urządzeniami elektrycznymi i zapisują wszystkie dane w formie liczbowej, wykorzystanie 10 cyfr byłoby trudne. Znacznie łatwiej w urządzeniach elektronicznych oprzeć się na zapisie tylko dwóch cyfr: 0 (prąd nie płynie) i 1 (prąd płynie). Dlatego podstawą zapisu w pamięci komputera jest pozycyjny system dwójkowy (=binarny). Dla przykładu
1 Dolny indeks przy liczbie oznacza, w jakim systemie została zapisana, np. 198410 oznacza zapis w systemie
dwójkowym.
110100102 = 1X27 + 1x26 + 0x25 + 1x24 + 0x23 + 0x22 + 1x21 + 1x20 = 1X128 + 1x64 + 0x32 + 1x16 + 0x8 + 0x4 + 1x2 + lxi = 21010.
Cyfrę w systemie dwójkowym (binarnym) nazywa się bitem (ang. bit) i może ona przyjmować tylko dwie wartości: 0 lub 1.
W konstrukcji pamięci komputerowej oparto się na zapisie 8-cyfrowym Oznacza to, że w jednej komórce pamięci można zapisać ciąg ośmiu zer lub jedynek. Taka 8-cyfrowa liczba w systemie dwójkowym (czyli liczba 8-bitowa) nazywa się bajtem (ang. byte). Możemy też policzyć, że w jednym bajcie daje się zapisać 28 = 256 liczb, od
000000002 (=010) do 111111112 (=25510).
Liczby od 0 do 255 oraz ich wielokrotności są więc najczęściej używanymi liczbami w informatyce. Jednak przy programowaniu zapis dwójkowy „zużywa" dużo cyfr (8 cyfr by zapisać liczbę 255). System dziesiętny także nie jest zbyt wygodny, bo trzema cyframi, którymi normalnie można zapisać 1000 cyfr, zapisujemy jedynie 256 liczb, czyli nieco ponad 25% możliwych kombinacji. Dlatego najczęściej używanym w programowaniu systemem jest system szesnastkowy (heksadecymalny).
W systemie dwójkowym mieliśmy 2 cyfry (0, 1), w dziesiątkowym dziesięć (0, 1, 2, 3, 4,
5, 6, 7, 8, 9), a w szesnastkowym wykorzystywanych jest szesnaście (0,1, 2, 3, 4, 5, 6, 7, 8,
9, A, B, C, D, E, F). Popatrzmy jak poszczególne liczby wyglądają w różnych systemach: dwójkowy 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 dziesiętny 1 2
3 4 5 6 7 8 9 10 11 12 13 1415 16 szesnastkowy 123456789ABCDEF10 Tabela 2Porównanie systemów liczbowych
Zaletą systemu szesnastkowego jest to, że do zapisania jednego bajtu potrzebuje tylko dwóch cyfr. 111111112 = 25610 = FF16.