Artykuł

gru 01 2008
0

Systemy liczbowe

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
000000
000111
001022
001133
010044
010155
011066
011177
100088
100199
101010A
101111B
110012C
110113D
111014E
111115F

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.

Data ostatniej modyfikacji: 13.04.2011, 08:24.

Podoba Ci się ten wpis? Powiedz o tym innym!

Send to Kindle

Komentarze

blog comments powered by Disqus