Używając komputera na co dzień zasadniczo spotykamy się tylko z jednym z systemów liczbowych mianowicie systemem dziesiętnym (decymalnym). Użytkownicy komputerów może czasem nieświadomie korzystają także jeszcze np. z systemu binarnego i systemu szesnastkowego. Pierwszy z nich jest systemem w jakim pracuje komputer tzw. system zero-jedynkowy. Drugi także ma szerokie zastosowanie w informatyce. System heksadecymalny używany jest np. przy ustalaniu kolorów w kodzie HTML, albo tworzeniu hashowych funkcji skrótu (np. MD5). Oczywiście zastosowań obu systemów jest znacznie więcej. W artykule skupimy się na sposobach przeliczania liczb między poszczególnymi systemami.
W poniższej tabeli zaprezentowałem liczby wykorzystywane są w systemach binarnym, dziesiętnym i heksadecymalnym
| Liczba binarna | Liczba dziesiętna | Liczba szesnastkowa |
|---|---|---|
| 0000 | 0 | 0 |
| 0001 | 1 | 1 |
| 0010 | 2 | 2 |
| 0011 | 3 | 3 |
| 0100 | 4 | 4 |
| 0101 | 5 | 5 |
| 0110 | 6 | 6 |
| 0111 | 7 | 7 |
| 1000 | 8 | 8 |
| 1001 | 9 | 9 |
| 1010 | 10 | A |
| 1011 | 11 | B |
| 1100 | 12 | C |
| 1101 | 13 | D |
| 1110 | 14 | E |
| 1111 | 15 | F |
Poniżej przedstawię sposoby przeliczania liczb pomiędzy poszczególnymi systemami liczbowymi.
Legenda:
Indeks dolny 2 - system binarny
Indeks dolny 10 - system dziesiętny
Indeks dolny 16 - system szesnastkowy
Bin - skrót od binarny (zero-jedynkowy)
Dec - skrót od decymalny (dziesiętny)
Hex - skrót od heksadecymalny (szesnastkowy).
Bin -> Dec
1001110<span><sub>2</sub></span> --------- 0*2<span><sup>0</sup></span> = 0 1*2<span><sup>1</sup></span> = 2 1*2<span><sup>2</sup></span> = 4 1*2<span><sup>3</sup></span> = 8 0*2<span><sup>4</sup></span> = 0 0*2<span><sup>5</sup></span> = 0 1*2<span><sup>6</sup></span> = 64 --------- 78<span><sub>10</sub></span>
Obliczenia zaczynamy zawsze od prawej do lewej strony według powyższego schematu.
Bin -> Hex
0101101110001111<span><sub>2</sub></span> ------------------- 0101|1011|1000|1111 ------------------- 5 B 8 F
Liczbę zapisaną binarnie dzielimy na bloki po 4 cyfry zaczynając od prawej strony. Jeśli mamy za mało cyfr, to dopisujemy z przodu odpowiednią liczbe zer. Wartości szesnastkowe odczytujemy z tabeli przedstawionej wyżej.
Dec -> Bin
78<span><sub>10</sub></span> ----------- 78:2=39 r.0 39:2=19 r.1 19:2=9 r.1 9:2=4 r.1 4:2=2 r.0 2:2=1 r.0 1:2=0 r.1 ----------- 1001110<span><sub>2</sub></span>
Dzielimy liczbę dziesietną przez 2. Zapisujemy wynik oraz resztę. Operacje powtarzamy aż w wyniku nie otrzymamy zera. Potem czytając resztę od dołu otrzymujemy liczbe binarną.
Dec -> Hex
271<span><sub>10</sub></span> -------------- 271:16=16 r. F 16:16=1 r. 0 1:16=0 r. 1 -------------- 10F<span><sub>16</sub></span>
Dzielimy liczbę dziesiętną przez 16 i zapisujemy wynik reszty w postaci liczby szesnastkowej. Operację powtarzamy aż nie otrzymamy zera. Potem odczytujemy resztę od dołu i mamy wynik.
Hex -> Dec
124<span><sub>16</sub></span> ---------------- 1*16<span><sup>2</sup></span>+2*16<span><sup>1</sup></span>+4*16<span><sup>0</sup></span> ---------------- 292<span><sub>10</sub></span>
Obliczenia zaczynamy od prawej strony. Pierwszą liczbę (w tym wypadku 4) mnożymy razy 16 do potęgi zerowej. Przesuwając się dalej w lewo zmieniamy cyfrę na kolejną składową z naszej liczby wyjściowej oraz podnosimy potegę o jeden w sposób jaki jest to robione w przytoczonym wyżej przykładzie.






Odśwież
Dołącz do konwersacji
Komentarze
Brak komentarzy. Może warto dodać własny?