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
10011102 --------- 0*20 = 0 1*21 = 2 1*22 = 4 1*23 = 8 0*24 = 0 0*25 = 0 1*26 = 64 --------- 7810
Obliczenia zaczynamy zawsze od prawej do lewej strony według powyższego schematu.
Bin -> Hex
01011011100011112 ------------------- 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
7810 ----------- 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 ----------- 10011102
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
27110 -------------- 271:16=16 r. F 16:16=1 r. 0 1:16=0 r. 1 -------------- 10F16
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
12416 ---------------- 1*162+2*161+4*160 ---------------- 29210
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.
Komentarze [0] | Jurek



Programista, student informatyki i ekonometrii, pasjonat
informatyki w każdej postaci, dobrych filmów, książek i muzyki, lubiący sport, a przede wszystkim
posiadacz najlepszej blondynki na świecie;)

