410 likes | 669 Views
Programowanie Niskopoziomowe. Wykład 2: Cyfrowy zapis informacji. Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie. Plan. Podstawowa terminologia Kody naturalne Konwersja pomiędzy kodami naturalnymi o różnych podstawach Kody uzupełnieniowe
E N D
Programowanie Niskopoziomowe Wykład 2: Cyfrowy zapis informacji Dr inż. Marek Mika Państwowa Wyższa Szkoła Zawodowa im. Jana Amosa Komeńskiego W Lesznie
Plan • Podstawowa terminologia • Kody naturalne • Konwersja pomiędzy kodami naturalnymi o różnych podstawach • Kody uzupełnieniowe • Liczby binarne ze znakiem • Kody BCD • Kody refleksyjne • Zmiennoprzecinkowy zapis liczb • Kody alfanumeryczne • Zabezpieczenia przed błędami
Podstawy • Informacje: • przechowywanie • przetwarzanie • przekazywanie • Przechowywanie: • tekst • grafika • dźwięk • obraz ruchomy
Język • Język – skończony i niepusty zbiór różnych słów nad danym alfabetem • Semantyka – znaczenia słów języka • Składnia (syntaktyka) – zbiór reguł używania słów danego języka
Kody liczbowe • Kody liczbowe stosowane są do zapisu informacji liczbowych • kody naturalne o różnych podstawach • kody uzupełnieniowe • kody do zapisu liczb ze znakiem • kody dwójkowo-dziesiętne (BCD) • kody refleksyjne • kody zmiennoprzecinkowe
MSB i LSB • MSB (ang. Most Significant Bit) – oznacza najwyższy lub najbardziej znaczący bit – bit związany z największą wagą i występujący w zapisie na najbardziej skrajnej pozycji z lewej strony • LSB (ang. Least Significant Bit) – oznacza najniższy lub najmniej znaczący bit – bit związany z najmniejszą wagą i występujący w zapisie na najbardziej skrajnej pozycji z prawej strony
Konwersja dziesiętnych liczb rzeczywistych • Część całkowitą i część ułamkową przetwarza się oddzielnie według przedstawionych reguł
Uzupełnienie do 2 – U2 • Zgodnie z regułą 2 liczbę w kodzie U2 otrzymujemy zachowując bez zmian wszystkie najmniej znaczące zera, aż do pierwszej najmniej znaczącej jedynki włącznie, a pozostałe bity negujemy
Reprezentacja liczb dwójkowych ze znakiem • Kod znak moduł (ZM) • MSB jest bitem znaku – 1 oznacza liczbę ujemną • pozostałe bity przedstawiają wartość bezwzględną liczby, czyli moduł • Kod znak-uzupełnienie do 1 (ZU1) • MSB bitem znaku • pozostałe bity oznaczają moduł: • kodowany naturalnie dla liczb dodatnich • kodowany jako U1 dla liczb ujemnych • Kod znak-uzupełnienie do 2 (ZU2) • MB bitem znaku • pozostałe bity oznaczają moduł: • kodowany naturalnie dla liczb dodatnich • kodowany jako U2 dla liczb ujemnych • Dwa zera („dodatnie” i „ujemne”) w kodach ZM i ZU1 • W kodach uzupełnieniowych nieznaczące bity są uzupełniane bitem znaku
Kody alfanumeryczne • 5-bitowy kod telegraficzny CCITT nr 2 • 7-bitowy kod ISO646-1983 • 7-bitowy kod ASCII (pierwsze 32 znaki specjalne) • Kody 8-bitowe – extended ASCII -m.in.: • Latin-2 (Slavic, strona kodowa 852) • Windows EE (Eastern Europe, strona kodowa 1250) • ISO Latin-2 (ISO 8859-2) • Kody 16 bitowe Unicode • Kody 32 bitowe Ucode
Kody kontrolne • Kod kontrolny służy do kontroli wierności informacji kodowanych cyfrowo • Podział ze względu na możliwość poprawy błędów: • kody detekcyjne – wyłącznie wykrywają błędy • kody korekcyjne – wykrywają i korygują błędy • Podział ze względu na sposób kodowania: • kody blokowe – kolejne informacje kodowane niezależnie (bez pamięci) • kody rekurencyjne (splotowe) – kolejne informacje kodowane również z uwzględnieniem wyników kodowania wcześniejszych informacji (z pamięcią)
Przykładowe kody kontrolne • Kod 1-z-10 • Kody BCD o stałej liczbie jedynek równej 2 • Kody systematyczne – złożenie ciągu informacyjnego z ciągiem kontrolnym: • kod z kontrolą parzystości • bit parzystości • parzystość parzysta i nieparzysta