1 dr Anna Kwiatkowska Instytut InformatykiKodowanie informacji dr Anna Kwiatkowska Instytut Informatyki
2 czy też kodzie heksadecymalnymKodowanie informacji Przedstawiając liczbę dziesiętną w systemie binarnym czy też heksadecymalnym należy pamiętać, że w dalszym ciągu jest to ta sama liczba lecz przedstawiona za pomocą innego zestawu znaków Możemy więc mówić o kodzie binarnym czy też kodzie heksadecymalnym
3 Zasada tworzenia kodu Zbiór symboli B Zbiór symboli A A2 B2 A1 B1 A3
4 Kodowanie liczb 1000101 Liczby binarne Liczby dziesiętne 69Liczby heksadecymalne 45
5 Jak wprowadzić do komputera informacje tekstowe?do przechowywania i przetwarzania danych przez układy elektroniczne komputera używany jest system binarny należy przedstawić tekst za pomocą liczb czyli jednoznacznie przyporządkować literom i innym znakom alfanumerycznym - liczb (numerów) w ten sposób powstał w 1965 r. kod ASCII (American Standard Code for Information Interchange)
6 ASCII kod jest jawny i używany przez wszystkich użytkowników i twórców oprogramowania jest to kod 7 bitowy, a więc możemy za jego pomocą przedstawić 27 czyli 128 znaków w 1981 r. IBM wprowadził rozszerzony do 8 bitów kod, co pozwala na przedstawienie 256 znaków (w tym znaki specjalne, graficzne, matematyczne i diakrytyczne znaki narodowe)
7 Fragment tabeli kodu ASCIIZnak Kod dzies. Kod binarny A 65 a 97 B 66 b 98 C 67 c 99 K 75 k 107 L 76 l 108 ź 171 Ż 189 179 Ă 198 + 188 - 196
8 Piszemy w kodzie ASCII A l a 65 97 108 01000001 00110001 01101100 dziesiętnie binarnie
9 Kod UNICODE 256 znaków alfanumerycznych nie dawało możliwości zakodowania znaków diakrytycznych wielu języków np.: japońskiego, arabskiego, hebrajskiego itp. odpowiedzią jest kod nazywany UNICODE o długości 16 bitów dla każdego znaku, to daje już możliwość zakodowania 216 czyli znaków
10 Kodowanie w praktyce Jednostka centralna
11 Jednostki informacji 1kbit [Kb]=210b=1024 bity1Mbit[Mb] =1024 Kb= bity 1 byte=8 bitów 1kB =210bajtów=1024 B 1MB=1024 KB= B NIE TYSIĄC!!!!
12 Reprezentacja liczb całkowitychw komputerze liczby przechowywane są w pamięci lub w rejestrach procesora o ustalonej liczbie pól, np. 8 lub 16 pojawia się problem przepełnienia - gdy liczba jest zbyt duża, by móc ją zapisać przy pomocy np. 8 bitów musi być też rozstrzygnięte, jak zapisywać liczby ujemne do zapisu liczb ujemnych używamy notacji nadmiarowej lub notacji dopełnienia 2
13 Notacja nadmiarowa Przy zapisie w tej notacji wszystkie liczby o określonej długości bitów, postępuje się następująco wybieramy długość bitową liczb, np. 4 zapisujemy wszystkie łańcuchy bitowe o wcześniej ustalonej długości bitów w kolejności rosnącej (czyli: 0000, 0001, 0010, 0011, itd.)
14 Notacja nadmiarowa łańcuch, w którym ustawiony (tzn. ma wartość"1") bit jest najstarszym bitem (tzn. znajduje się w pierwszej pozycji po lewej stronie), a pozostałe bity są nie ustawione (równe "0") przyjmujemy jako wartość zero (czyli 1000) kolejne łańcuchy mają wartości 1, 2, 3..., a poprzednie -1, -2, itd.
15 Notacja nadmiarowa wszystkie 3-bitowe liczby binarne w notacji nadmiarowej:
16 Reprezentacja liczb zmienno-przecinkowychChcąc zapisać liczbę zmiennoprzecinkową w postaci binarnej, najpierw musimy zapisać ją w postaci ułamka binarnego (np. 2.1, to binarnie) Następnie ustalamy, o ile miejsc musimy przesunąć kropkę ułamkową, aby znalazła się na pierwszym miejscu Ilość ta będzie naszą cechą
17 powstałą liczbę nazywamy mantysą i zapisujemy jako ciąg cyfr bez kropkinastępnie zapisujemy kolejno bit określający znak liczby (0=+, 1 =-), następnie cechę, a zaraz po niej mantysę
18 W przypadku 10.10 (b) przesuwamy kropkę o 2 miejsca w lewo, więc cecha wynosi 2 <=> 010W tym przypadku mantysa to 1010
19 Przykład: Umówmy się, że nasza liczba będzie przechowywana w np. jednym bajcie Na mantysę będą przeznaczone 4 bity, a na cechę tylko 3 Mamy bajt danych , jaka to liczba?? Wiemy, że liczba zmiennoprzecinkowa, składa się z trzech części. Pierwszy bit (1) oznacza znak liczby - nasza liczba jest ujemna
20 Cztery ostatnie cyfry, to wartość liczby zapisana jako część ułamkowa na prawo od kropki ułamkowej - w przypadku naszej liczby czytamy: .1100 Pozostałe 3 bity (od drugiego do czwartego) to wykładnik (cecha), zapisany w notacji nadmiarowej, który mówi nam, o ile musimy przesunąć kropkę ułamkową mantysy, aby otrzymać wartość liczby.
21 Przykład Przesuwamy kropkę o 1 (p. cecha) w lewo, i otrzymujemy b = 3/8, uwzględniając znak ostatecznie wartość liczby, to -3/8.
22 Kodowanie liczb całkowitych Znak-modułNajbardziej znaczący bit zawiera informację o znaku liczby Najczęściej wartość 0 oznacza, że liczba jest nieujemna, zaś 1, że liczba nie jest dodatnia Pozostałe bity są naturalną reprezentacją binarną wartości bezwzględnej liczby Zero ma podwójną reprezentację: +0: oraz –0: Zakres: od –2 N-1+1 do 2 N-1-1, gdzie N to liczba bitów
23 Uzupełnienie do 2 Liczby dodatnie zapisujemy w kodzie naturalnymLiczby ujemne kodujemy jako uzupełnienie do 2 ich wartości bezwzględnych Jeśli najstarszy bit w tej reprezentacji ma wartość 0, to liczba jest nieujemna Jeśli najstarszy bit ma wartość 1, liczba jest ujemna
24 Uzupełnienie do 2 Zero ma pojedynczą reprezentację: 0...0Jeśli przez N oznaczymy liczbę bitów, to liczbą wszystkich możliwych reprezentacji liczb niezerowych jest 2 N-1 Jest to liczba nieparzysta, zatem nie możemy reprezentować równej ilości liczb dodatnich i ujemnych Zakres: od –2 N-1 do 2 N-1 -1
25 Uzupełnienie do podstawy b-1Niech dana będzie liczba N zajmująca n pozycji w systemie o podstawie b Uzupełnieniem liczby N do podstawy b-1 jest liczba U b-1(N)=(b n-1)-N
26 Przykład np. niech N=716310=7*103 + 1 *102 + 6 *101+3 *100,gdzie n=4 i b=10 W przykładzie: U 9(716310)= = 9999 – = 2836
27 Uzupełnienie do podstawyUzupełnienie jest zatem takim ciągiem cyfr, aby po dodaniu go do uzupełnianej liczby, utworzył ciąg składający się maksymalnych cyfr w danym systemie. 7163 = N = Ub-1(N) 9999 = bn -1
28 W systemie binarnym (b=2) uzupełnienie do podstawy b-1jest negacją wszystkich bitów:= U b-1(N) = b n -1
29 Przykłady reprezentacji liczb całkowitych dla N=4D –dziesiętnie, B –binarnie, ZM –znak-moduł, U2 –uzupełnienie do 2 D B ZM U2 D B ZM U2 brak brak brak brak
30 Kodowanie liczb całkowitych –kod BCD (BinaryCodedDecimals)Cyfry danej liczby w systemie dziesiętnym kodowane są za pomocą 4 bitów Jest to zatem kod nadmiarowy, gdyż nie wykorzystujemy sześciu kombinacji Istnieje różnych kodów BCD
31 Najczęściej używanym jest kod „8421” Nazwa ta wynika z przypisania wag kolejnym pozycjom binarnym, co ilustruje przykład: = 1 9 8 5 6
32 Kodowanie liczb całkowitych –kod BCD nie używane nie używane nie używane nie używane nie używane nie używane
33 Kody samouzupełniająceKod „84-2-1” jest samouzupełniający, tzn. uzupełnienie do 2 binarnej reprezentacji liczby dziesiętnej odpowiada reprezentacji uzupełnienia do 9 tej liczby dziesiętnej.
34 Reprezentacja zmiennoprzecinkowa – standard IEEE 754wybrane własności: liczba zakodowana jest na 32 bitach, czyli 4 bajtach występuje mantysa z ukrytą jedynką cecha kodowana jest za pomocą ośmiu bitów,
35 maksymalną wartością cechy możliwą do wykorzystania przy kodowaniu zwykłych liczb jest =25410, gdyż kombinacja = jest zarezerwowana dla liczb specjalnych Oznacza to, że maksymalną liczbą możliwą do zakodowania jest: · =2127·(2-2-23) = ·1038
36 N=(-1)S·2E-127·1.M Obszar: S E M Liczba bitów: mantysa znak wykładnik (cecha)