do licznika BCD. Po zakończeniu zliczania stan licznika dwójkowego zliczającego w przód reprezentuje przetwarzaną liczbę w kodzie dwójkowym.
W celu przystosowania przetwornika licznikowego do konwersji BIN/BCD wystarczy licznik dwójkowy i licznik BCD zamienić miejscami i zmienić im kierunek zliczania.
Przetworniki licznikowe są bardzo proste w budowie i w działaniu, ale czas konwersji jest zmienny, proporcjonalny do wielkości przetwarzanej liczby.
4.6.6.2. Przetworniki szeregowe
Przetworniki szeregowe BCD/BIN i BIN/BCD wykorzystują głównie metodę konwersji, polegającą na przesunięciu i korekcji. Przesunięcie w lewo liczby dwójkowej, jak wiadomo, odpowiada pomnożeniu jej przez dwa, a przesunięcie w prawo — podzieleniu jej przez dwa. Aby przesuwanie liczby BCD było równoważne pomnożeniu jej przez dwa, trzeba stosować korekcję.
Przykładową konwersję BCD/BIN metodą przesunięcia i korekcji zilustrowano w tablicy 4.38.
Korekcja, w przypadku przetwarzania całkowitych liczb dwójkowo-dziesięt-nych na dwójkowe, polega na:
— dodaniu (0101)2 = (5)10 do nie przesuniętej tetrady, jeśli przed przesunięciem ostatni bit tetrady poprzedzającej ją był 1, albo
Konwersja liczby dziesiętnej 935 na równoważną jej liczbę dwójkową Tablica 4.38
Liczba dziesiętna |
Liczba dwójkowo-dziesiętna |
Liczba dwójkowa |
Uwagi | ||||
9 |
3 |
5 |
1001 |
0011 |
0101 |
0000000000 | |
4,5 |
1,5 |
2,5 |
0100.1 |
0001.1 |
0010.1 |
przesunięcie | |
4 |
6 |
7 |
0100 |
0110 |
0111 |
1000000000 |
korekcja |
2 |
3 |
3,5 |
0010 |
0011 |
0011.1 |
przesunięcie | |
2 |
3 |
3 |
0010 |
0011 |
0011 |
1100000000 |
korekcja |
1 |
1,5 |
1,5 |
0001 |
0001.1 |
0001.1 |
przesunięcie | |
1 |
1 |
6 |
0001 |
0001 |
0110 |
1110000000 |
korekcja |
0,5 |
0,5 |
3 |
0000.1 |
0000.1 |
0011 I |
przesunięcie | |
0 |
5 |
8 |
0000 |
0101 |
1000 |
0111000000 |
korekcja |
0 |
2,5 |
4 |
0000 |
0010.1 |
0100 |
przesunięcie | |
0 |
2 |
9 |
0000 |
0010 |
1001 |
0011100000 |
korekcja |
0 |
1 |
4,5 |
0000 |
0001 |
0100.1 |
przesunięcie | |
0 |
1 |
4 |
0000 |
0001 |
0100 |
1001110000 |
korekcja |
0 |
0,5 |
2 |
0000 |
0000.1 |
0010 |
przesunięcie | |
0 |
0 |
7 |
0000 |
0000 |
0111 |
0100111000 |
korekcja |
0 |
0 |
3,5 |
0000 |
0000 |
0011.1 |
przesunięcie | |
0 |
0 |
3 |
0000 |
0000 |
0011 |
1010011100 |
korekcja |
0 |
0 |
1,5 |
0000 |
0000 |
0001.1 |
przesunięcie | |
0 |
0 |
1 |
0000 |
0000 |
0001 |
1101001110 |
korekcja |
0 |
0 |
0,5 |
0000 |
0000 |
0000.1 |
przesunięcie | |
0 |
0 |
0 |
0000 |
0000 |
0000 |
]1110100111| |
korekcja |
wynik konwersji |