Kody binarne

Download Report

Transcript Kody binarne

Kody binarne
M@rek Pudełko
Urządzenia Techniki Komputerowej
Kod liczbowy
• Kodem liczbowym to kod, który liczbom
dowolnego systemu będzie przyporządkowywał
słowa kodowe w postaci zerojedynkowej.
• Przykłady
– Naturalny kod binarny
– Kody BCD
– Kody alfanumeryczne
• ASCII
• EBCDEC
• Unicode
2
Wprowadzenie
• Dwójkowy system liczbowy oraz kody reprezentują informacje w układach cyfrowych
• Proces przekształcania informacji jednego
rodzaju postaci na inną postać nazywamy
kodowaniem.
3
• Kodowanie to przyporządkowanie poszczególnym
obiektom zbioru kodowanego, odpowiadających
im elementów zwanych słowami kodowanymi.
• Każdemu słowu kodowanemu musi odpowiadać
dokładnie jeden element kodowany.
Zbór (obiektów)
elementów
kodowanych
A
B
C
• Literze C mogą odpowiadać dwa słowa
Zbór słów
kodowe. Nie przeszkadza to w
kodowanych
poprawnym przetwarzaniu inf. (choć
stanowi pewne utrudnienie procesu
111
kodowania).
• Sytuacja odwrotna jest niedopuszczalna,
001
bo uzyskane w procesie kodowania
010
słowo kodowe 001 byłoby niejasne - nie
100
wiadomo byłoby, czy wynik odpowiada
np. literze A czy B.
Sposoby opisywania kodów
Opis słowny
Wzór
Ciąg znaków
Tabelka
przekodowująca
Postacie informacji kodowanej
Tekst
(ciąg znaków)
Wartości
logiczne
lub liczby
Polecenia do
wykonania przez
komputer (instrukcje
dla procesora)
5
Porównanie systemów 2,8,10,16
System dziesiętny System szesnastkowy
System binarny
System ósemkowy
0
0
0000
00
1
1
0001
01
2
2
0010
02
3
3
0011
03
4
4
0100
04
5
5
0101
05
6
6
0110
06
7
7
0111
07
8
8
1000
10
9
9
1001
11
10
A
1010
12
11
B
1011
13
12
C
1100
14
13
D
1101
15
14
E
1110
16
15
F
1111
17
6
Kod 1 z n
• Kod 1 z n to kod gdzie w słowie o długości n bitów tylko
jeden bit jest wyróżniony.
• O wartości liczby decyduje pozycja wyróżnionego bitu.
• Kod 1 z n jest kodem pozycyjnym, bezwagowym.
• Stosuje się dwa sposoby wyróżniania:
– bit wyróżniony to 1 (reszta ustawiona na 0)
– bit wyróżniony to 0 (reszta ustawiona na 1) –tzw. negacja
kodu 1 z n.
7
Kod 1 z 10
Negacja kodu 1 z 10
Wartość dziesiętna
Wartość binarna
Kod 1 z 10
0
0000
0000000001
1111111110
1
0001
0000000010
1111111101
2
0010
0000000100
1111111011
3
0011
0000001000
1111110111
4
0100
0000010000
1111101111
5
0101
0000100000
1111011111
6
0110
0001000000
1110111111
7
0111
0010000000
1101111111
8
1000
0100000000
1011111111
9
1001
1000000000
0111111111
8
Kod BCD
• Kod BCD (Binary-Coded Decimal czyli dziesiętny
zakodowany dwójkowo) to sposób zapisu cyfr
dziesiętnych przy użyciu 4 bitów.
• Liczbę dziesiętną rozbijamy na cyfry i każdą z nich
zamieniamy oddzielnie na kod BCD.
• Kod BCD jest obecnie stosowany głównie w
urządzeniach elektronicznych z wyświetlaczem
cyfrowym (np. w kalkulatorach, miernikach cyfrowych) i
w zastosowaniach finansowych informatyki
(ujednoznacznia zapis części ułamkowych kwot i ułatwia
dziesiętne zaokrąglanie).
9
Kod BCD – zestawienie cyfr
Wartość dziesiętna
Wartość binarna
0
0000
1
0001
2
0010
3
0011
4
0100
5
0101
6
0110
7
0111
8
1000
9
1001
10
Kod BCD – ilość cyfr
• 10 cyfr możemy zapisać za pomocą 4 bitów.
• Tak naprawdę wystarczyłoby 3,3 bita.
• W praktyce mamy ogromna ilość potencjalnych
kodów BCD.
11
Zapis kodu BCD w arytmetyce
komputerowej
Użycie czterech najmłodszych
bitów
4 starsze są wtedy ustawiane na jakąś
konkretną wartość (np. 1111 jak w
EBCDIC, 0011 jak w ASCII, czy 0000),
1111ABCD
• Większe bezpieczeństwo tak
przechowywanych liczb
• Możliwość oznaczenia sposobu
kodowania i znaku liczby
Spakowane BCD
zapis dwóch cyfr w każdym bajcie (starsza
na starszej jego połówce, a młodsza na
młodszej)
A1B1C1D1A2B2C2D2
• Większa pojemność danych
• Wiele mikroprocesorów (w tym rodzina
Intel 8080) może dodać i odjąć liczby
BCD w wersji spakowanej
12
Kody binarne
13
Kod Graya
• Kod Graya jest kodem refleksyjnym tzn. dwie kolejne
liczby różnią się tylko jednym bitem.
• Jest również kodem cyklicznym, gdyż ostatni i
pierwszy wyraz tego kodu także spełniają tę zasadę.
• Używa się go w przetwornikach analogowocyfrowych, szczególnie w systemach gdzie występują
po sobie kolejne wartości np. czujniki
położenia/obrotu.
14
Rozbudowa kodu Graya
• Rozszerzanie kodu Graya o 1 bit przeprowadza się wg algorytmu:
1.
2.
Dopisz te same słowa kodowe, ale w odwrotnej kolejności (odbicie lustrzane)
Do początkowych wyrazów dopisz bit o wartości zero, natomiast do odbitych
lustrzanie bit o wartości 1.
• Konwersja z kodu binarnego na kod Graya
1.
2.
przesunąć liczbę w postaci binarnej o jeden bit w prawo (podzielić przez 2)
wykonać operację XOR na odpowiednich bitach liczby i wyniku dzielenia przez 2.
• Konwersja z kodu Graya na kod binarny
1.
2.
3.
Kolejne cyfry naturalnego kodu binarnego wyznacza się iteracyjnie, od
najbardziej znaczącej, w oparciu o odpowiednią cyfrę kodu Graya i poprzednio
wyznaczoną cyfrę kodu naturalnego:
przyjmij pierwszą (najbardziej znaczącą) cyfrę kodu naturalnego równą pierwszej
cyfrze kodu Graya
każdą kolejną cyfrę oblicz jako różnicę symetryczną (XOR) odpowiedniej cyfry
kodu Graya i poprzednio wyznaczonej cyfry kodu naturalnego.
15
Porównanie kodów z kodem Graya
System dziesiętny
Kod binarny
Kod Graya
0
0000
0000
1
0001
0001
2
0010
0011
3
0011
0010
4
0100
0110
5
0101
0111
6
0110
0101
7
0111
0100
8
1000
1100
9
1001
1101
10
1010
1111
11
1011
1110
12
1100
1010
13
1101
1011
14
1110
1001
15
1111
1000
16
17
18
2.
• Kod ASCII (Amerykański standardowy kod dla
wymiany informacji)
Jest to kod służący do kodowania tekstów i
przesyłania ich pomiędzy urządzeniami. Koduje on
oprócz znaków alfa numerycznych tak zwane znaki
sterujące do sterowania transmisją i pracą drukarki.
Kod ten jest w postaci tabeli zawierającej kodowane
obiekty i odpowiadające im słowa kodowane.
Znaki w PC jak i większości komputerów zapisane są
jednym Bajtem, co oznacza że może ich być aż 256.
Właściwe ASCII (techniczne) składa się z 128 znaków
od 0 do 127, a znaki od 128 do 255 nazywane są
rozszerzonymi znakami ASCII, stanowią pewien
Nieoficjalny standard, zwane znakami IBM (istnieją
urządzenia nie obsługujące drugiej polówki)
Zestaw znaków ASCII o kodach od 0 do 127 dzieli
się na dwie części pierwsza o kodach od 0 do 32,
druga od 32 do 127 są to litery i znaki przestankowe
Od 0 do 32 znajdują się znaki sterujące, maja
specjalne znaczenie, kiedy komp. porozumiewa się
Z drukarką musi jej powiedzieć co i jak ma
wydrukować (kiedy kończy się wiersz, a kiedy strona)
Pierwsze 32 kody nie są używane do przekazywania
danych, zapewniają natomiast polecenia, sygnały
kontrolne i sterujące.