zamiana liczb między systemami dwójkowym i dziesiętnym

Transkrypt

zamiana liczb między systemami dwójkowym i dziesiętnym
ZAMIANA LICZB MIĘDZY SYSTEMAMI DWÓJKOWYM I DZIESIĘTNYM
Aby zamienić liczbę z systemu dwójkowego (binarnego) na dziesiętny (decymalny) należy najpierw
przypomnieć sobie jak są tworzone liczby w ww systemach - jaka liczba jest ich podstawą.
Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.
Aby przeliczyć liczbę z systemu dwójkowego na dziesiętny musimy skorzystać z poniższego wzoru:
Załóżmy, że chcemy przeliczyć z systemu dwójkowego na dziesiętny liczbę:
10101101
W powyższym wzorze w miejsca x'ów wstawiamy na odpowiednie (kolejne) pozycje kolejne cyfry z
przeliczanej liczby. Wyglądało by to tak:
Aby uzyskać ostateczny wynik musimy jeszcze to wszystko wyliczyć. Na pierwszy rzut oka może wydawać
się to odrobinę skomplikowane ale przy odrobinie wprawy jest to proces bardzo prosty. Wystarczy
zauważyć pewną zależność - każda następna potęga liczby 2 jest od swojego poprzednika dokładnie
dwukrotnie większa. Co nam daje ta wiedza? Otóż nie musimy pracowicie wyliczać potęg tylko do wzoru
wstawić gotowe liczby: 1, 2, 4, 8, 16, 32, 64, 128 (oczywiście kolejne liczby są tworzone tak samo 256, 512,
1024, 2048, itd.).
Po podstawieniu do wzoru otrzymujemy:
I już jest trochę prościej, aby jeszcze całą sprawę ułatwić usuńmy z naszego równania wszystkie elementy
które nie mają wpływu na jego ostateczny wynik tzn. wszystkie mnożenia przez zero.
Jak widać zostały nam w równaniu mnożenia... ale mnożenie przez 1 nic nie zmienia, więc zróbmy kolejne
uproszczenie.
1
No cóż niewiele zostało z naszego pierwotnego równania :). Wystarczy tylko dodać liczby a otrzymany
wynik jest naszą "przeliczoną" z systemu dwójkowego na dziesiętny liczbą. W tym wypadku jest to liczba
173.
Jak widać przeliczanie liczb z systemu dwójkowego na dziesiętny polega na dodawaniu odpowiednich potęg
liczby 2.
Przeliczanie z systemu dziesiętnego na dwójkowy jest odrobinę bardziej skomplikowane. Aby z liczby
dziesiętnej uzyskać odpowiadającą jej liczbę dwójkową należy dzielić daną liczbę przez 2, wyniki kolejnych
dzieleń zapisujemy w słupku reszty z dzieleń zapisujemy po prawej stronie za kreską, kolejne dzielenia
wykonujemy do momentu aż uzyskamy wynik z dzielenia mniejszy niż 1.
Teraz wystarczy przepisać uzyskane reszty z dzieleń od dołu do góry: 10101101 , koniec :)
ZAMIANA LICZB MIĘDZY SYSTEMAMI SZESNASTKOWYM I DZIESIĘTNYM
Aby zamienić liczbę z systemu szesnastkowego (hexadecymalnego) na dziesiętny (decymalny) należy
najpierw przypomnieć sobie jak są tworzone liczby w ww systemach - jaka liczba jest ich podstawą.
Podstawą w systemie szesnastkowym jest liczba 16 a w systemie dziesiętnym liczba 10.
Aby przeliczyć liczbę z systemu szesnastkowego na dziesiętny musimy skorzystać z poniższego wzoru:
2
Załóżmy, że chcemy przeliczyć z systemu szesnastkowego na dziesiętny liczbę:
9a0b
W powyższym wzorze w miejsca x'ów wstawiamy na odpowiednie (kolejne) pozycje kolejne cyfry z
przeliczanej liczby. Wyglądało by to tak:
Aby uzyskać ostateczny wynik musimy jeszcze to wszystko wyliczyć. Na pierwszy rzut oka może wydawać
się to odrobinę skomplikowane ale przy odrobinie wprawy jest to proces bardzo prosty. Wystarczy raz
wcześniej przygotować sobie potęgi liczby 16 a potem wystarczy je tylko podstawiać do wzoru.
Kilka kolejnych potęg to: 1, 16, 256, 4096, 65536 itd. (kolejne są zbyt duże aby mogły być nam przydatne w
chwili obecnej ale jeśli ktoś potrzebuje to kalkulator w dłoń :) ).
Po podstawieniu do wzoru otrzymujemy:
I już jest trochę prościej, aby jeszcze całą sprawę ułatwić usuńmy z naszego równania wszystkie elementy
które nie mają wpływu na jego ostateczny wynik tzn. wszystkie mnożenia przez zero.
Teraz pozbądźmy się oznaczeń typowych dla systemu szesnastkowego podstawiając ich dziesiętne
odpowiedniki.
No cóż niewiele zostało z naszego pierwotnego równania :). Teraz należy wykonać odpowiednie mnożenia i
dodać wyniki, otrzymana liczba 39435 jest dziesiętnym odpowiednikiem liczby 9a0b w systemie
szesnastkowym.
Jak widać przeliczanie liczb z systemu szesnastkowego na dziesiętny nie jest tak proste jak z systemu
dwójkowego ale nie jest też niewykonalne.
Oczywiście jeśli powyższa metoda wydaje się komuś zbyt skomplikowana może przełożyć liczbę z systemu
szesnastkowego na dwójkowy i z tej postaci przeliczać na dziesiętny.
Obie metody są dopuszczalne z tym, że:
- pierwsza wymaga "większych" obliczeń ale jest w miarę krótka
3
- druga ma łatwiejsze obliczenia ale za to ma więcej "rozpisywania"
Przeliczanie z systemu dziesiętnego na szesnastkowy jest odrobinę bardziej skomplikowane. Tu przydadzą
nam się wcześniej wypisane potęgi liczby 16 czyli: 1, 16, 256, 4096, 65536.
Teraz zastanówmy się jaką liczbę będziemy przeliczać, niech będzie to 39435 - sprawdzimy czy nasze
poprzednie rozważania były prawidłowe.
- wybieramy sobie największą z potęg liczby 16 mniejszą od liczby którą przeliczamy, w naszym przypadku
będzie to 4096 (65535 jest większa od 39435 więc odpada).
- dzielimy liczbę 39435 przez 4096, zapisujemy wynik (9) oraz resztę z dzielenia (2571).
- dzielimy resztę (2571) przez kolejną (niższego stopnia) potęgę liczby 16 (w naszym przypadku jest to
256), zapisujemy wynik (10) oraz resztę z dzielenia (11)
- dzielimy resztę (11) przez kolejną (niższego stopnia) potęgę liczby 16 (teraz to będzie 16), zapisujemy
wynik (0) oraz resztę z dzielenia (11)
- dzielimy resztę (11) przez kolejną (niższego stopnia) potęgę liczby 16 (teraz to 1 , w sumie dzielenia nie
ma :) ), zapisujemy wynik (11) , koniec.
Teraz pozostało tylko zapisać poszczególne liczby (wyniki) w odpowiedniej kolejności:
9,10,0,11
i zamienić liczby dziesiętne na ich szesnastkowe odpowiedniki:
9a0b
Całe działanie przedstawia poniższy rysunek:
ZAMIANA LICZB MIĘDZY SYSTEMAMI DWÓJKOWYM I SZESNASTKOWYM
Chyba najprostszym sposobem zamiany liczby z systemu dwójkowego (binarnego) na system szesnastkowy
(hexadecymalny) jest metoda podstawieniowa.
4
Metodę tą obrazuje poniższy rysunek:
Aby zamienić liczbę z systemu dwójkowego na szesnastkowy wystarczy ją podzielić na 4-bitowe grupy i
tak przygotowanym grupom bitów przyporządkować odpowiadające im znaki zapisu szesnastkowego.
Przykładowo jeśli chcemy zamienić liczbę dwójkową 01101011011110110101110101011101 na jej
szesnastkowy odpowiednik wykonujemy następujące kroki:
- dzielimy liczbę na 4-bitowe grupy: 0110 1011 0111 1011 0101 1101 0101 1101
- następnie dla każdej z grup odczytujemy jej szesnastkowy odpowiednik:
0110 - 6
1011 - b
0111 - 7
1011 - b
0101 - 5
1101 - d
0101 - 5
1101 - d
- tak uzyskane znaki zapisujemy w odpowiednim porządku otrzymując liczbę w systemie szesnastkowym:
$6b7b5d5d.
Zamiana w drugą stronę odbywa się na podobnej zasadzie tzn. odpowiednim znakom z liczby w zapisie
szesnastkowym dopasowujemy 4-bitowe odpowiedniki, następnie uzyskane w ten sposób ciągi bitów
łączymy w całość otrzymując poszukiwaną liczbę.
5