Rok akademicki 06/07, Pracownia nr /33 Pracownia nr Technologie informacyjne Politechnika Białostocka - Wydział Elektryczny semestr I, studia stacjonarne I stopnia Rok akademicki 06/07 Jednostki informacji bit, bajt Kodowanie znaków: ASCII, ISO 8859, liczb: NKB (BCN), U, BCD Liczby zmiennoprzecinkowe standard IEEE 754 Pracownia nr (03.0.06) dr inż. Jarosław Forenc Rok akademicki 06/07, Pracownia nr 3/33 Rok akademicki 06/07, Pracownia nr 4/33 Jednostki informacji - bit Jednostki informacji - bit Bit (ang. binary digit) -podstawowa jednostka informacji stosowana w informatyce i telekomunikacji Wielokrotności bitów: Bit przyjmuje jedną z dwóch wartości: 0(zero) (jeden) Bit jest tożsamy z cyfrą w systemie dwójkowym Oznaczenia bitów: b -zalecenie standardu IEEE 54 z 00 roku bit - zalecenie standardu IEC 6007 Przedrostkibinarne zostały wprowadzone w 998 roku w celu odróżnienia przedrostków o mnożniku 000 od przedrostków o mnożniku 04
Rok akademicki 06/07, Pracownia nr 5/33 Rok akademicki 06/07, Pracownia nr 6/33 Jednostki informacji - bajt Jednostki informacji - bajt Bajt(ang. byte) -najmniejsza adresowalnajednostka informacji pamięci komputerowej składająca się z bitów W praktyce przyjmuje się, że jeden bajt to 8 bitów (choć nie wynika to z powyższej definicji) 8-bitowy bajt nazywany jest także oktetem Bajt można podzielić na dwie połówki 4-bitowe nazywane tetradami(ang. nibbles) Za pomocą jednego bajtu można zapisać 56 różnych wartości: 0000 0000 0 0000 000 0 54 55 Najczęściej stosowanym skrótem dla bajtujest wielka litera B (uwaga: Boznacza też bela, ale częściej używa się db-decybel) Rok akademicki 06/07, Pracownia nr 7/33 Rok akademicki 06/07, Pracownia nr 8/33 Jednostki informacji - bajt Jednostki informacji - przykłady Wielokrotności bajtów: Stosujemy mnożnik używany w informatyce (04) kb B: kb 04 B MB B: MB 04 04 048 576 B GB B: GB 04 04 04 073 74 84 B MB kb: MB 04 048 kb GB kb: 3 GB 3 04 04 3 45 78 kb TB kb: 4 MB 4 04 04 04 4 94 967 96 kb Przedrostki binarne (dwójkowe) nie zostały przyjęte przez wszystkie środowiska zajmujące się informatyką
Rok akademicki 06/07, Pracownia nr 9/33 Rok akademicki 06/07, Pracownia nr 0/33 Kodowanie ASCII Kodowanie-proces przekształcania jednego rodzaju postaci informacji na inną postać Alfanumeryczne ASCII ISO 646 ISO 8859 Kody Liczbowe NKB BCD z N Inne Graya Morse a ASCII -American Standard Code for Information Interchange 7-bitowy kod przypisujący liczby z zakresu 0-7: - literom (alfabet angielski) - cyfrom - znakom przestankowym - innym symbolom - poleceniom sterującym kody 0-3, 7-33 kody sterujące służące do sterowania urządzeniami typu drukarka czy terminal EBCDIC z 5 U kody 3-6 -95 kodów tworzących zbiór znaków ASCII Rok akademicki 06/07, Pracownia nr /33 Rok akademicki 06/07, Pracownia nr /33 ISO/IEC 8859 ISO/IEC 8859- ISO/IEC 8859to zestaw standardów służących do kodowania znaków za pomocą 8 bitów Wszystkie zestawy ISO 8859 mają znaki 0-7 takie same jak ASCII, zaś pozycjom 8-59 przypisane są dodatkowe kody sterujące, tzw. C (nieużywane)... ISO 8859- (Latin-) - alfabet łaciński dla Europy zachodniej ISO 8859- (Latin-) - łaciński dla Europy środkowej i wschodniej (Polska Norma) ISO 8859-3 (Latin-3) - łaciński dla Europy południowej ISO 8859-4 (Latin-4) - łaciński dla Europy północnej ISO 8859-5 (Cyrillic) - dla cyrylicy ISO 8859-6 (Arabic) - dla alfabetu arabskiego ISO 8859-7 (Greek) - dla alfabetu greckiego ISO 8859-8 (Hebrew) - dla alfabetu hebrajskiego ISO/IEC 8859-, Latin- ( środkowo, wschodnioeuropejskie ) przykład: A -kod: 4 (6) 40 (6) + (6) Ę -kod: CA (6) C0 (6) + A (6) dostępne języki: bośniacki, chorwacki, czeski, węgierski, polski, rumuński, serbski, serbsko-chorwacki, słowacki, słoweński, górno- i dolnołużycki możliwość przedstawienia znaków w języku niemieckim i angielskim 9 znaków łacińskiego pisma kodowanie zgodne z Polską Normą SP -spacja NBSP - twarda spacja SHY - miękki dywiz (myślnik)
Rok akademicki 06/07, Pracownia nr 3/33 Rok akademicki 06/07, Pracownia nr 4/33 -komputerowy zestaw znaków mający obejmować wszystkie pisma i inne znaki (symbole muzyczne, techniczne, wymowy) używane na świecie przypisuje unikalny numerkażdemu znakowi, niezależny od używanej platformy, programu czy języka Konsorcjum: http://www.unicode.org Pierwsza wersja:.0(0.99) Ostatnia wersja: 9.0( czerwca 06) The Consortium. The Standard, Version 9.0.0, (Mountain View, CA: The Consortium, 06) http://www.unicode.org/versions/9.0.0 Koduje 8.7 znaków - Zakresy Zakres: Znaczenie: 0000-007F Basic Latin (to samo co w ASCII) 0080-00FF Latin- Supplement (to samo co w ISO/IEC 8859-) 000-07F Latin Extended-A 080-04F Latin Extended-B 050-0AF IPA Extensions 0B0-0FF Spacing Modifiers Letters... 0370-03FF Greek 0400-04FF Cyrillic... D00 - D7F Phonetic Extensions D80 - DBF Phonetic Extensions Supplement E00 - EFF Latin Extended Additional F00 - FFF Greek Extended... Rok akademicki 06/07, Pracownia nr 5/33 Rok akademicki 06/07, Pracownia nr 6/33 Istnieją trzy metody kodowania (zapisu binarnego) różniące się liczbą bajtów przeznaczonych do opisania kodu znaku źródło: The Consortium. The Standard, Version 5..0
Rok akademicki 06/07, Pracownia nr 7/33 Rok akademicki 06/07, Pracownia nr 8/33 Kody alfanumeryczne - przykład Tekst: Sala WE-0 Kody alfanumeryczne - przykład Tekst: Żółty wąż S a l a W E - 0 ASCII ISO 8859-53 6 6c 6 0 57 45 d 3 3 30 53 6 6c 6 0 57 45 d 3 3 30 53 6 6c 6 0 57 45 d 3 3 30 system szesnastkowy ASCII ISO 8859-83 97 08 97 3 87 69 45 49 49 48 83 97 08 97 3 87 69 45 49 49 48 83 97 08 97 3 87 69 45 49 49 48 system dziesiętny Rok akademicki 06/07, Pracownia nr 9/33 Rok akademicki 06/07, Pracownia nr 0/33 NKB (BCN) - liczby całkowite bez znaku U - liczby całkowite ze znakiem Zapis liczby w systemie dwójkowym: ZU, uzupełnień do dwóch, two s complement Używając n-bitów można zapisać liczbę z zakresu: Najstarszy bit jest bitem znaku liczby: 0 -dodatnia, - ujemna n X( ) 0, 8 bitów 6 bitów 3 bity 64 bity 0... 55 0... 65 535 0... 4 94 967 95 0... 8 446 744 073 709 55 65 Wartość liczby: X 0 n x + x + x +... + x 0 n + x n ( n ) 8 trylionów 446 biliardów 744 biliony 73 miliardy 709 milionów 55 tysięcy 65
Rok akademicki 06/07, Pracownia nr /33 Rok akademicki 06/07, Pracownia nr /33 U - zamiana na liczbę przeciwną BCD Krok : inwersja (negacja) wszystkich bitów modułu liczby, tj. zamiana 0 na i na 0 Krok : zwiększenie wyniku o 75? 000 ( 0)?(U) ( U)? Binary-Coded Decimal - dziesiętny zakodowany dwójkowo BCD-sposób zapisu liczb polegający na zakodowaniu kolejnych cyfr liczby dziesiętnej w 4-bitowym systemie dwójkowym (NKB) Istnieje kilka wariantów kodu BCD 68 } } 6 } 8 000 00 000 68? (BCD) 00000000 (BCD) 75 ( 0) 000(U) 000( U) 75 00 00 00 { 00 { 00 { 9 000000 5 00 3 (BCD) (BCD)? 953 Rok akademicki 06/07, Pracownia nr 3/33 Rok akademicki 06/07, Pracownia nr 4/33 Zapis zmiennoprzecinkowy liczby rzeczywistej Postać znormalizowana zapisu liczby Postać zmiennoprzecinkowa umożliwia zapis bardzo dużych lub bardzo małych liczb w prostszej i wygodniejszej formie 000000000000, 0 3-30000000000000000000 -3,0 0 9 Tę samą liczbę można zapisać w różnych sposób 43 0 4,3 0,43 0 3 0,43 0 4 W postaci znormalizowanej mantysa spełnia nierówność: 0,00000000000,0 0 - B > M Zapis liczby zmiennoprzecinkowej ma postać gdzie: S E L ( ) M B S - znak liczby (ang. sign), przyjmuje wartość 0 lub M - mantysa (ang. mantissa), liczba ułamkowa B - podstawa systemu liczbowego (ang. base) E - wykładnik (ang. exponent), cecha, liczba całkowita,43 0 3 -to jest postać znormalizowana, gdyż: 0>,43 0,43 0 4 -to nie jest postać znormalizowana 4,3 0 -to nie jest postać znormalizowana
Rok akademicki 06/07, Pracownia nr 5/33 Rok akademicki 06/07, Pracownia nr 6/33 Liczby zmiennoprzecinkowe w systemie binarnym Standard IEEE 754 Liczba bitów przeznaczonych na mantysę i wykładnik jest ograniczona Standard opracowany w celu ujednolicenia operacji na liczbach zmiennoprzecinkowych na różnych platformach sprzętowych IEEE Std. 754-008 - IEEE Standard for Floating-Point Arithmetic W systemie binarnym podstawa systemu jest stała: B L ( ) M S E Wykładnik jest zapisywany jako wartość przesunięta o pewną stałą (ang. biased exponent) - zapis z przesuniętym wykładnikiem S L ( ) M E BIAS Wartości przesunięcia: 7(format 3-bit.), 03(format 64-bit.) Precyzja Pojedyncza (Single Precision, binary3) Pojedyncza rozszerzona (Single Extended) Podwójna (Double Precision, binary64) Podwójna rozszerzona (Double Extended) Długość słowa [bity] Znak [bity] Długość [bity] Wykładnik Zakres Długość [bity] Mantysa Cyfry znaczące 3 8 ±7 0 ±38 3 7 43 ±03 0 ±308 3 0 64 ±03 0 ±308 5 6 79 5 ±6383 0 ±493 63 9 Rok akademicki 06/07, Pracownia nr 7/33 Rok akademicki 06/07, Pracownia nr 8/33 Standard IEEE 754 - liczby 3-bitowe Standard IEEE 754 - liczby 3-bitowe Liczba pojedynczej precyzji przechowywana jest na 3 bitach: Przykład: 3 S E E E E E E E E MM znak wykładnik (8 bitów) 4 3 6 5 8 7 0 MMMMMMMMMMMMMMMMMMMMM mantysa (3 bity) Bit znaku:0 - liczba dodatnia, - liczba ujemna Wykładnikzapisywany jest na z nadmiarem o wartości 7 i przyjmuje wartości od -7 do 8 Mantysa w większości przypadków jest znormalizowana Mantysa zawiera się w przedziale i, jej pierwszy bit jest zawsze równy i nie jest zapamiętywany Bit ten jest automatycznie uwzględniany podczas wykonywania obliczeń obliczmy wartość dziesiętną liczby zmiennoprzecinkowej 000000000000000000000000000 (? dzielimy liczbę na części określamy znak liczby IEEE754) 0{ 00000 443 000000000000000000000 44444 444443 S bit znaku S 0 E wykladnik liczba dodatnia M mantysa (tylko czesc ulamkowa) obliczamy wykładnik pamiętając, że w reprezentacji 3-bitowej nadmiar wynosi 7 E 00000 ( ) 8 + 4 + 33 7 { 6 nadmiar
Rok akademicki 06/07, Pracownia nr 9/33 Rok akademicki 06/07, Pracownia nr 30/33 Standard IEEE 754 - liczby 3-bitowe Standard IEEE 754 - zero Przykład (cd.): wyznaczamy mantysędopisując na początku ( -część całkowita) i stawiając przecinek M,000000000000000000000 0 4 + + + 0,5 + 0,065,565 - zero dodatnie - zero ujemne wartość dziesiętną liczby zmiennoprzecinkowej obliczamy według wzoru: S E L ( ) M podstawiając otrzymujemy: S 0, E 6( 0), M, 565 0 6 L ( ),565 00 bit znaku może przyjmować dowolną wartość przy porównaniach zero dodatnie i ujemne są traktowane jako równe sobie 000000000000000000000000000 ( 00 IEEE754) Rok akademicki 06/07, Pracownia nr 3/33 Rok akademicki 06/07, Pracownia nr 3/33 Standard IEEE 754 - nieskończoność - nieskończoność dodatnia Standard IEEE 754 - liczba zdenormalizowana 0 0 0... 0 0 0 x x x x x x x x x x x x 0... znak wykładnik mantysa - nieskończoność ujemna 0 0... 0 0 0 x x x x x x x x x x x x 0... znak wykładnik mantysa bit znaku określa czy mamy nieskończoność dodatnią czy ujemną nieskończoność występuje w przypadku wystąpienia nadmiaru (przepełnienia) oraz przy dzieleniu przez zero pojawia się, gdy występuje niedomiar (ang. underflow), ale wynik operacji można jeszcze zapisać denormalizując mantysę wtedy mantysa nie posiada domyślnej części całkowitej równej, tzn. reprezentuje liczbę o postaci 0,xxx xxx, a nie,xxx xxx
Rok akademicki 06/07, Pracownia nr 33/33 Standard IEEE 754 - nieliczby... x x x x x x x... x x x x x znak wykładnik mantysa QNaN(Quiet NaN) ciche nieliczby ciche nieliczby przechodzą przez działania arytmetyczne (ich wystąpienie nie powoduje przerwania wykonywania programu) najczęściej oznaczają wartość niezdefiniowaną... x x 0 x x x x x... x x x x x znak wykładnik mantysa SNaN(Signaling NaN) głośne nieliczby powodują powstanie wyjątków w operacjach arytmetycznych i przerwanie wykonywania programu najczęściej oznaczają wartość niedozwoloną