18
Mnożąc liczbę a przez 2 otrzymujemy! t
2a = + f a_. 21"1
i*ł__
<1
Jeżeli więc wynik mnożenia jest liczbą większą lub równą Jedności, to a_^ = 1, w przeciwnym wypadku a_^ = 0. Po wykonaniu mnożenia odrzucamy część całkowitą wyniku, czyli wyraz a_^ i kontynuujemy mnożenie wyznaczając dalsze współczynniki a_2, a_ji ••• itd.
1.2.3* System ósemkowy i szesnastkowy
Znaczenie tych systemów wynika z łatwości zamiany liczb w nich przedstawionych na dwójkowe i odwrotnie. Ponieważ zapisy liczb w tych systemach są krótsze od zapisu dwójkowego, są one często używane dla ułatwienia człowiekowi manipulacji na liczbach dwójkowych.
W systemie ósemkowym dysponujemy ośmioma cyframi 0-7, zaś w szesnastkowym 16 cyframi, przy czym zwykle dla oznaczenia cyfr od 10 do 15 używa się kolejnych liter alfabetu od A do F.
Aby zamienić liczbę ósemkową (szesnastkową) na binarną, należy każdą cyfrę zapisu ósemkowego (szesnastkowego) zamienić na 3-bitową (4-bitową) liczbę dwójkową. Zasada ta wynika z faktu, że 8 = 2^ i 16 = 2^.
Przykład 1.10
Stosując podaną zasadę konwersji mamy:
, (AF9)16= (1010 1111 1001)2
A F 9 #
Aby zamienić liczbę dwójkową na ósemkową (szesnastkową), należy w liczbie dwójkówej wydzielić 3-bitowe (4—bitowe) grupy cyfr począwszy od prawej strony i liczby w tych grupach zastąpić cyframi ósemkowymi (szesnastkowymi) .
Przykład 1.11
Liczbę (10111010001011)2 przedstawić w systemach ósemkowym i szesnastkowym.
oraz
(10 1110 1000 1011)2 = (2E8B)16 2 E 8 B
1.2.4. Kod Gray'a
Jest to kod dwójkowy, zaliczany do kodów refleksyjnych, w których,przy przejściu od dowolnej liczby całkowitej do liczby większej lub mniejszej o jedność, następuje zmiana tylko na jednej pozycji zapisu.
Poniżej przedstawiono dziesięć kolejnych liczb naturalnych w systemie dziesiętnym, dwójkowym i Gray'a. Przy kodzie Gray'a zaznaczono poziomymi kreskami miejsca zwierciadlanego odbicia odpowiednich grup bitów, usprawiedliwiające nazwę kod refleksyjny.
(h)io |
(a)2 |
(n^Grs |
0 |
OOOO |
0000 |
1 |
OOOI |
0001 |
2 |
0010 |
0011 |
5 |
0011 |
0010 |
ą |
0100 |
0110 |
5 |
0101 |
0111 |
6 |
0110 |
0101 |
7 |
0111 |
0100 |
8 |
1000 |
1100 |
9 |
1001 |
1101 |
Algorytm zamiany N-bitowej liczby wyrażonej w naturalnym^systemie dwójkowym na liczbę w kodzie Gray'a dany jest wzorem
gt = bt © bl+1 , i = 0,1,...,N (1.5)
zaś zamiana odwrotna przebiega według wzorów ‘'K = SN
bi = bi+1 © ei’ i = N-1, N-2,...,0 (1.6)
We wzorach tych bŁ oraz g^ oznaczają i-te cyfry liczby wyrażone w kodzie, odpowiednio, binarnym i Gray'a, zaś © Jest operacją sumy modulo 2 w algebrze Boole'a (patrz p. 1.3.2 1 przykłady 1.12 i 1.13).
Liczbę (lOmonOJg przedstawić w kodzie Gray^a.
Na podstawie wzoru (1.5) i tabeli funkcji © podanej na rys. 1.?a
dokonujemy konwersji jak na rys. 1,?b.
O
a |
b |
a©b |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 1110 110);
\I\I\I\N\I\N (1110 0 110 1^
a)
¥f
(1 0 0 0 1 1 0 1)MA¥
(1 1 1 1 0 1 1 o)z
b).
Rys. 1.7. Przykłady konwersji pomiędzy kodem binarnym i Gray'a:a) tablica funkcji © , b) konwersja kodu binarnego, na kod Gray'a, c) konwersja ko
du Gray'a na'binarny