Liczby całkowite. Wstęp do Informatyki Podstawy arytmetyki komputerowej c.d. Kod BCD (Binary Coded Decimal) Arytmetyka liczb całkowitych

Podobne dokumenty
Kod IEEE754. IEEE754 (1985) - norma dotycząca zapisu binarnego liczb zmiennopozycyjnych (pojedynczej precyzji) Liczbę binarną o postaci

Komunikacja człowiek-komputer

Pracownia Komputerowa wyk ad VII

dr inż. Jarosław Forenc

Jednostki informacji - bit. Kodowanie znaków: ASCII, ISO 8859, Unicode liczb: NKB (BCN), U2, BCD. Liczby zmiennoprzecinkowe standard IEEE 754

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI

Kodowanie informacji. Przygotował: Ryszard Kijanka

Technologie Informacyjne

Kodowanie liczb. Kodowanie znaków. Reprezentacja liczb w systemach komputerowych Reprezentacja stałoprzecinkowa. dr inŝ.

Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci:

Systemy liczenia. 333= 3*100+3*10+3*1

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

kodowanie informacji Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Techniki multimedialne

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Kodowanie informacji. Kody liczbowe

Dodatek Technologie internetowe 1. UTF-8 wg 2. Adresy URL

Jednostki informacji cyfrowej. Kodowanie znaków. Kodowanie liczb. dr inż. Jarosław Forenc

Informatyka 1. Wykład nr 3 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Pracownia komputerowa. Dariusz Wardecki, wyk. VIII

Sposób reprezentacji informacji w systemie. Reprezentacja informacji. Dzięki kodowaniu informacji.

Ochrona danych osobowych. Pozycyjne systemy liczbowe. Jednostki informacji. Kodowanie znaków ASCII, ISO 8859, Unicode. Kodowanie liczb NKB, U2, BCD

Kody liczbowe - Naturalny Kod Binarny (NKB) Kody liczbowe - Kod BCD. Kody liczbowe - Przechowywanie liczb w kodzie BCD

Wstęp do Informatyki

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Architektura komputerów

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Informatyka 1. Wykład nr 3 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

PODSTAWY INFORMATYKI. Informatyka? - definicja

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Podstawy informatyki. Reprezentacja danych w systemach cyfrowych

dr inż. Jarosław Forenc

Architektura systemów komputerowych Laboratorium 5 Kodowanie liczb i tekstów

Teoretyczne Podstawy Informatyki

Pracownia Komputerowa wykład VI

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Jednostki informacji cyfrowej. Kodowanie znaków. Kodowanie liczb. Reprezentacja liczb w systemach komputerowych. Reprezentacja stałoprzecinkowa

Architektura komputerów

Pracownia Komputerowa wykład IV

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Naturalny kod binarny (NKB)

dr inż. Jarosław Forenc

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura

Architektura komputerów

Arytmetyka binarna - wykład 6

Komputerowa reprezentacja znaków i liczb. dr inż. Izabela Szczęch Politechnika Poznańska Podstawy informatyki

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

Podstawy Informatyki

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

dr inż. Paweł Myszkowski

Kodowanie liczb całkowitych w systemach komputerowych

Pracownia Komputerowa wyk ad IV

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Podstawy Informatyki. Wykład 2. Reprezentacja liczb w komputerze

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Prefiksy binarne. kibibit (Kibit) mebibit (Mibit) gibibit (Gibit) tebibit (Tibit) pebibit (Pibit) exbibit (Eibit) zebibit (Zibit) yobibit (Yibit)

Informatyka 1. Wykład nr 5 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Arytmetyka komputera

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łan Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

architektura komputerów w. 2

DZIESIĘTNY SYSTEM LICZBOWY

Podstawy informatyki. Izabela Szczęch. Politechnika Poznańska

Wstęp do Informatyki. Reprezentacja liczb w komputerze Arytmetyka stało- i zmiennoprzecinkowa Przechowywanie danych pliki i foldery

Pracownia Komputerowa wyk ad VI

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Kodowanie liczb. Reprezentacja liczb całkowitych. Standard IEEE 754. dr inż. Jarosław Forenc

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Technologie Informacyjne Wykład 4

Podstawy informatyki (2)

LICZBY ZMIENNOPRZECINKOWE

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

1.1. Pozycyjne systemy liczbowe

Pozycyjny system liczbowy

Adam Korzeniewski p Katedra Systemów Multimedialnych

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Informatyka 1. Wykład nr 4 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Stan wysoki (H) i stan niski (L)

Pracownia Komputerowa wykład V

Informatyka 1. Wykład nr 3 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Kody liczbowe - Naturalny Kod Binarny (NKB) Kody liczbowe - Kod BCD. Kody liczbowe - Przechowywanie liczb w kodzie BCD

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Adam Korzeniewski p Katedra Systemów Multimedialnych

Cyfrowy zapis informacji

Jednostki informacji cyfrowej. Kodowanie znaków. Język C. dr inż. Jarosław Forenc. FLOPS (FLoating point Operations Per Second)

Wykład III: Kompresja danych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

ARYTMETYKA KOMPUTERA

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

O sygnałach cyfrowych

Transkrypt:

Podstawy arytmetyki komputerowej c.d. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Liczby całkowite Za pomocą n-bitów moŝna zapisać dokładnie 2 n róŝnych liczb całkowitych (NKB, U2) NKB liczby całkowite z zakresu...2 n -1 U2 liczby całkowite z zakresu 2 n-1...+2 n-1-1 2 n liczb NKB U2 1 2 3... I max =2 n -1 I -2-1 1 2 I max= 2 n-1 min =2 n-1...... -1 Arytmetyka liczb całkowitych Kod BCD (Binary Coded Decimal) Dla n-bitowego zapisu liczb całkowitych: 1. MoŜliwe jest zapisanie wszystkich liczb z dostępnego zakresu. 2. Działania arytmetyczne (+,-,*,div,mod) dają zawsze wyniki całkowite dokładne (bez przybliŝeń lub zaokrągleń). 3. Błąd przekroczenia zakresu (overflow) jest sygnalizowany: a) wystąpieniem bitu przeniesienia (w NKB) b) zmianą znaku wyniku (w U2 dla dwóch liczb o tych samych znakach) KaŜda cyfra dziesiętna kodowana jest oddzielnie na 4 bitach. Dopuszczalne są tylko kombinacje od do 11. 17 BCD 11 11 b 1 111 b 95 BCD Kod BCD powala uniknąć konwersji pomiędzy systemem dziesiętnym a binarnym, ale zapis liczb wymaga więcej miejsca i bardziej złoŝonych (wolnych) algorytmów operacji arytmetycznych. 1

Liczby wymierne Liczby dwójkowe w postaci m.n x Zapis ułamkowy jest mało wygodny do potrzeb zapisu komputerowego. y Zapis z kropką oddzielającą część całkowitą od ułamkowej n.m nadaje się tylko do bardzo ograniczonego zakresu liczb o ustalonej długości pól m i n. (zapis stałopozycyjny) np. obliczenia walutowe w zakresie.... 999999.99 kaŝda liczba kodowana w BCD zajmuje 4b. Zapis typu n.m obowiązuje w systemie pozycyjnym o dowolnej podstawie, równieŝ dla liczb dwójkowych a m... a 1 a. a -1 a -2... a -n a m 2 m +...+ a 1 2 1 + a 2 + a -1 2-1 +... + a -n 2 -n 11.11 b = 2 2 +2 +2-1 +2-2 =4+1+.5+.25=5.75 1.1 b = 4 + 1/8 = 4.125 Zapis zmiennopozycyjny (floating point) Zapis zmiennopozycyjny (floating point) KaŜdą liczbę moŝna zapisać w postaci ±X * b Y, gdzie: X mantysa (część ułamkowa), Y wykładnik, b podstawa systemu liczbowego 1496. =.1496*1 9 -.7652 = -76.52*1-6 Zapis zmiennopozycyjny nazywa się równieŝ notacją naukową. Notacja naukowa pozwala na zwarty zapis zarówno liczb bardzo duŝych, jak i małych. 1496. =.1496E9 -.7652 = -76.52e-6 2

Zapis liczb dwójkowych zmiennopozycyjnych Ogólna postać liczby: ± X*2 Y 111 b =.111 b *2 5 -.11 b = -1.1 b *2-7 W systemie dwójkowym: 111 =.111*1 11 -.11 = -1.1*1-111 Postać znormalizowana Postać znormalizowana liczby: tylko jedna cyfra znacząca przed kropką 1496. = 1.496E8 -.7652 = -7.652e-5 111. b = 1.11 b *2 8 -.11 b = -1.1 b *2-7 W systemie dwójkowym, liczby znormalizowane zawsze mają mantysę z cyfrą 1 przed kropką. Kod IEEE754 IEEE754 c.d. IEEE Institute of Electrical and Electronics Engineers IEEE754 (1985) - norma dotycząca zapisu binarnego liczb zmiennopozycyjnych Liczbę binarną o postaci (-1) s * 1.f * 2 e-127 zapisuje się na 32-bitach następująco: s e f znak 1 bit wykładnik 8 bitów mantysa 23 bity (-1) s * 1.f * 2 e-127 Mantysa zapisywana jest bez wiodącej cyfry 1, co pozwala oszczędzić miejsce Wykładnik zapisany jest w formie przesuniętej, tj. zwiększony o 127, co pozwala na uniknięcie liczb ujemnych w jego zapisie. 1111... b = -1 * 1.1 b *2 129-127 = -1.1 b *2 2 = -5 11... b = +1 * 1. b *2 96-127 = 1 * 2-31 4.65e-1 3

Dec IEEE754 IEEE754 kody specjalne -7.25-111.1 b -1.111 b *2 2 zero dodatnie zero ujemne zdenormalizowana + nieskończoność - nieskończoność nie-liczba (NaN) znak 1 lub 1 1 lub 1 wykł. 255 255 255 mantysa 1 11 111 liczba dodatnia 1...254 dowolna liczba ujemna 1 1...254 dowolna Ograniczenia zapisu zmiennopozycyjnego Ograniczenie zakresu: skończona długość pola wykładnika Ograniczenia zapisu zmiennopozycyjnego Ograniczenie dokładności: skończona długość pola mantysy R max -R max -R min R min R max 1.f*2 k 1.f*2 k+1 1.f*2 k+1 1.f*2 k+2 1.f*2 k+3 IEEE754 single precision (32 bity) R min 1.1754943e-38 1... b R max 3.428235e+38 X111111111111...111 b Zapisać moŝna tylko niektóre liczby wymierne. Zagęszczenie liczb jest zmienne i zaleŝy od wartości wykładnika. W kaŝdym przedziale pomiędzy 2 i i 2 i+1 znajduje się tyle równomiernie rozłoŝonych liczb, na ile kombinacji pozwala długość pola mantysy. Dla liczb bliskich R min dokładność jest największa, ale zakres najmniejszy, dla liczb bliskich R max najmniejsza, a zakres największy. 4

Liczby całkowite vs zmiennopozycyjne Za pomocą n-bitów moŝna zapisać dokładnie 2 n róŝnych liczb całkowitych (NKB, U2) NKB 1 2 3 2 n liczb... I max =2 n -1 Za pomocą n-bitów moŝna zapisać mniej niŝ 2 n róŝnych liczb wymiernych (IEEE754) -R max -R min R min R max Z n-bitów moŝna utworzyć 2 n róŝnych kombinacji binarnych. Znaczenie tych kombinacji zaleŝy od interpretacji. W przypadku zapisu zmiennopozycyjnego, dostępne wartości są jedynie inaczej rozłoŝone na osi liczbowej, ale jest ich niemal tyle samo co liczb całkowitych. Single vs Double Precision IEEE754 Single Precision: 32 bity 8b wykładnik + 23b mantysa R min 1-38 R max 1 +38 dokładność około 7 cyfr znaczących Double Precision: 64 bity 11b wykładnik + 52b mantysa R min 1-38 R max 1 +38 dokładność około 16 cyfr znaczących Arytmetyka liczb zmiennopozycyjnych Dla zapisu zmiennopozycyjnego IEEE754: 1. NiemoŜliwe jest zapisanie wszystkich liczb z dostępnego zakresu. 2. Działania arytmetyczne (+,-,*,/) dają wyniki obarczone błędem przybliŝenia. 3. Błąd zakresu (niedomiar lub przepełnienie) jest sygnalizowany kodem specjalnym IEEE754 4. Błąd przybliŝenia nie jest sygnalizowany. 5. Operacje arytmetyczne wymagają skomplikowanych algorytmów. Dodawanie liczb IEEE754 Dodawanie: 1. Sprowadź liczby do wspólnego większego wykładnika 2. Dodaj mantysy (ze znakiem) 3. Normalizuj wynik 1.111*2 2 + 1.1*2-1 1.111*2 2 +.11*2 2 1.111.11 1.1 1.1*2 2 = 1.1*2 3 Po kaŝdym kroku algorytmu naleŝy dodatkowo sprawdzać czy nie powstał niedomiar lub przepełnienie i na końcu zaokrąglić wynik, jeśli potrzeba. 5

MnoŜenie liczb IEEE754 Konwersja pomiędzy systemami MnoŜenie: 1. Dodaj wykładniki obu liczb 2. PomnóŜ mantysy (ze znakiem) 3. Normalizuj wynik 1.111*2 2 * 1.1*2-1 2+(-1) = 1 1.111 1.1 1111 1111 1.111 1.111*2 1 = 1.111*2 2 Po kaŝdym kroku algorytmu naleŝy dodatkowo sprawdzać czy nie powstał niedomiar lub przepełnienie i na końcu zaokrąglić wynik, jeśli potrzeba. Liczby o skończonej długości w jednym systemie liczbowym, mogą mieć nieskończone rozwinięcie w innym systemie liczbowym. Sytuacja taka skutkuje nieodwracalną utratą dokładności podczas przeliczania..1 3 =.333333333333333333333333 1....1 7 =.142857142857142857142857 1....1 1 =,111111111111 2... Kodowanie tekstu Podstawowy zestaw znaków: Litery alfabetu (małe i wielkie) Znaki interpunkcyjne i inne Cyfry Spacja Razem: nieco mniej niŝ 1 znaków Kod ASCII ASCII The American Standard Code for Information Interchange Standard ASCII jest kodem 7-bitowym przyjętym w 1968r. w celu uzyskania podstawowej kompatybilności pomiędzy róŝnymi systemami komputerowymi. Kodowanie znaku wymaga minimum 7 bitów. W praktyce kodowanie tekstu wymaga 1Bajtu na zapis kaŝdego znaku tekstu. Jakie wartości naleŝy przypisać poszczególnym znakom czyli jaki standard kodowania? 6

ASCII c.d...31 (..1F h ) kody sterujące dla terminala bs back space cofnięcie kursora lf line feed przesunięcie kursora do nowej linii (w dół) cr carriage return powrót kursora (karetki) na początek linii esc escape kod ucieczki, sygnalizacja sytuacji specjalnej 32 (2 h ) kody znaku odstępu (spacja) 48..57 (3..39 h ) kody znaków cyfr (..9) 65..9 (41..5A h ) kody wielkich liter (A..Z) 97..122 (61..7A h ) kody małych liter (a..z) Strony kodowe Standard ASCII nie definiuje znaków o wartościach powyŝej 127. Niewykorzystane 128 wartości są przypisywane znaków z alfabetów narodowych, które nie występują w kodzie ASCII oraz innych znaków dodatkowych. Strona kodowa (Code Page) określa standard wykorzystania znaków o kodach od 128 do 255. Polskie strony kodowe (niektóre): DOS cp852, Mazovia,... Windows cp125 Unix, Internet iso-8859-2 ISO/IEC 8859 ISO/IEC 8859 ISO/IEC 8859 - zestaw standardów słuŝących do kodowania znaków za pomocą 8-bitów Standardy te zostały utworzone przez European Computer Manufacturers Association w połowie lat 8-tych, po czym zostały uznane przez ISO Wszystkie zestawy ISO 8859 mają znaki d -127 d ( h -7F h ) takie same jak w kodzie ASCII Pozycjom 128 d -159 d (8 h -9F h ) przypisane są dodatkowe kody sterujące, tzw. C1 (obecnie nie są uŝywane) W czerwcu 24 roku, grupa robocza odpowiedzialna za utrzymanie zestawów znaków kodowanych ośmiobitowo została rozwiązana, a co za tym idzie, wstrzymane zostały prace związane z ISO 8859, a skoncentrowano się na uniwersalnym zestawie znaków (UCS) i Unicode Stosowane standardy ISO 8859: ISO 8859-1 (Latin-1) - alfabet łaciński dla Europy zachodniej ISO 8859-2 (Latin-2) - łaciński dla Europy środkowej i wschodniej 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 8859-9 (Latin-5) ISO 8859-1 (Latin-6) ISO 8859-11 (Thai) - dla alfabetu tajskiego ISO 8859-12 - brak ISO 8859-13 (Latin-7) ISO 8859-14 (Latin-8) ISO 8859-15 (Latin-9) ISO 8859-16 (Latin-1) - łaciński dla Europy środkowej 7

Windows-125 Windows-125 (CP-125) - strona kodowa uŝywana przez system Microsoft Windows do reprezentacji tekstów w językach środkowoeuropejskich uŝywających alfabetu łacińskiego Obsługiwane języki: albański, chorwacki, czeski, polski, rumuński, słowacki, słoweński, węgierski, niemiecki Windows-125 jest podobny do ISO 8859-2 - posiada wszystkie jego drukowalne znaki (a takŝe kilka dodatkowych), lecz kilka z nich zajmuje inne miejsca Windows-125 ISO 8859-2 ASCII w praktyce Standardy kodowania nowej linii: DOS, Windows: cr+lf Unix: lf Mac OS: cr Problem z wyświetlaniem polskich znaków: Tekst zapisany w standardzie ISO-8859-2: 44 7A 69 65 F1 D A 69 2 6E 6F 63 2E D z i e ń i n o c. znak o kodzie > 128 litera ń w kodzie cp125 Dzień i noc. Tekst wyświetlony w Notatniku systemu Windows (Windows-125): cr lf spacja ISO/IEC 1646 - Universal Character Set ASCII standard ograniczony + kłopoty ze stronami kodowymi Rozwiązanie: zebranie razem w jednym zestawie kodów znaków wszystkich języków świata (języki europejskie, cyrylica, hebrajski, arabski, japoński, chiński, hieroglify, etc.) oraz róŝne symbole (techniczne, prawne, medyczne, muzyczne, wymowy, etc.). Standard ISO/IEC 1646 definiuje znaki za pomocą 4 bajtów (32 bity) Unicode (Unikod) Równolegle z ISO/IEC 1646 opracowano inny standard: przyporządkowanie znaków, kodowanie danych, zasady typografii i składu UNICODE. Od 1991 ISO/IEC 1646 oraz UNICODE posługują się tym samym zestawem znaków. KaŜdy kod Unicode jednoznacznie identyfikuje symbol na dowolnym komputerze na Ziemi i pozwala umieszczać razem w jednym dokumencie teksty w róŝnych językach. Dla zapewnienie kompatybilności z kodem ASCII, pierwsze 128 kodów w obu standardach określa te same znaki. Plane Range Description Abbreviation FFFF Basic Multilingual Plane BMP 1 1 1FFFF Supplementary Multilingual Plane SMP 2 2 2FFFF Supplementary Ideographic Plane SIP 3 to 13 3 DFFFF currently unassigned 14 E EFFFF Supplementary Special-purpose Plane SSP 15 F FFFFF Supplementary Private Use Area-A 16 1 1FFFF Supplementary Private Use Area-B http://www.unicode.org 8

Unicode kodowanie znaków UCS Zakres: Znaczenie: - 7F Basic Latin (to samo co w ASCII) 8 - FF Latin-1 Supplement (to samo co w ISO/IEC 8859-1) 1-17F Latin Extended-A 18-24F Latin Extended-B 25-2AF IPA Extensions 2B - 2FF Spacing Modifiers Letters... 37-3FF Greek 4-4FF Cyrillic... 1D - 1D7F Phonetic Extensions Standardy Kolejnością ułoŝenia bajtów w słowie: 1D8-1DBF Phonetic Extensions Supplement 1E - 1EFF Latin Extended Additional Little Endian pierwszy jest mniej 1F - 1FFF Greek Extended znaczący bajt (Windows) Big Endian pierwszy jest bardziej znaczący bajt UCS-2 kodowanie za pomocą dwóch bajtów (tylko Basic Multilingual Plane) UCS-4 kodowanie za pomocą czterech bajtów (wszystkie moŝliwe znaki) Basic Multilingual Plane Unicode kodowanie znaków UTF Metody kodowania UTF (Unicode Transformation Format) UTF-7 kodowanie opracowane na potrzeby poczty elektronicznej (załączniki MIME), mało popularne kodowanie 7-bitowe UTF-8 - kodowanie 8-bitowe ze zmienną długością kodowania, zgodne z ASCII UTF-16 - kodowanie 16-bitowe ze zmienną długością kodowania UTF-32/UCS-4 - kodowanie 32-bitowe Unicode - kodowanie UTF-8 UTF-8 - system kodowania ze zmienną długością reprezentacji znaku Znaki Unikodu są mapowane na ciągi bajtów x do x7f - bity xxxxxxx x8 do x7ff - bity 11xxxxx 1xxxxxx x8 do xffff - bity 111xxxx 1xxxxxx 1xxxxxx x1 do x1fffff - bity 1111xxx 1xxxxxx 1xxxxxx 1xxxxxx x2 do x3ffffff - bity 11111xx 1xxxxxx 1xxxxxx 1xxxxxx 1xxxxxx x4 do x7fffffff - bity 111111x 1xxxxxx 1xxxxxx 1xxxxxx 1xxxxxx 1xxxxxx Z powodu takiego kodowania ten sam znak moŝna zapisać na kilka sposobów, np znak a : 111 111 111 111 11 111 Standard UTF-8 przewiduje, Ŝe kaŝdy program MUSI odrzucać wszystkie znaki zapisane sekwencjami dłuŝszymi niŝ minimalna. Unicode - kodowanie UTF-8 Zalety kodowania UTF-8 kaŝdy tekst w ASCII jest tekstem w UTF-8, a Ŝaden znak spoza ASCII nie zawiera bajtu z ASCII typowy tekst ISO-Latin-x rozrasta się w bardzo niewielkim stopniu po przekonwertowaniu go do UTF-8 (teksty w języku polskim zwiększają objętość jedynie o kilka procent) o kaŝdym bajcie wiadomo czy jest początkiem znaku, czy teŝ leŝy w środku Nie ma problemów z little endian vs. big endian. Wady kodowania UTF-8 znaki alfabetów niełacińskich zajmują po kilka bajtów zamiast jednego jak jest to w kodowaniach narodowych Nie wszystkie systemy i programy posługują się Unikodem Tekst w Unicode moŝe być nawet 2 razy większy od ASCII 9

Unicode w praktyce Kodowanie dźwięku Utf-8: w zaleŝności Dźwięk: drgania cząsteczek powietrza odbierane jako zmiany ciśnienia poruszające membranę mikrofonu. 77 2 7A 61 6C 65 C5 BC 6E 6F C5 9B 63 69 w z a l e Ŝ n o ś c i spacja polska litera Ŝ polska litera ś odchylenie membrany Amplituda drgań: głośność dźwięku Częstotliwość drgań: wysokość dźwięku Próbkowanie: pomiar wielkości ciągłej w określonych momentach czasowych. czas Częstotliwość próbkowania musi być większa od największej częstotliwości zmian próbkowanego sygnału. Kodowanie dźwięku Układ rejestracji dźwięku mikrofon Układ odtwarzania dźwięku RAM pamięć DAC przetwornik cyfra/analog ADC przetwornik analog/cyfra głośnik RAM pamięć Compact Disc Standard: przetworniki ADC/DAC 16-bitowy (kaŝda próbka 2B) częstotliwość próbkowania 44kHz (pomiar co 23µs) 1s dźwięku (mono) 86kB, 1h 32MB Kodowanie obrazu Obraz monochromatyczny punkt obrazu kodowany 1 bitem. linie obrazu 1 bajt 1 bajt długość linii obrazu pamięć obrazu: 16 linii x 2B = 32B 111 11 11 11 11 11 11 11 11 11 11 11 11 11 111 11 1

Kodowanie obrazu głę bokoś ć koloru Obraz kolorowy punkt obrazu kodowany 1B, 2B, 3B lub 4B 8-bitowa głębokość koloru 256 kolorów 16-bitowa głębokość koloru 65536 kolorów 24,32-bitowa głębokość koloru 16.7 milionów kolorów pamięć obrazu: 16p x 16p x 1B = 256B Kompresja danych Kompresja danych zmniejszanie rozmiaru danych poprzez usuwanie redundancji (nadmiaru informacji). Kompresja bezstratna: moŝliwe jest odtworzenie oryginalnej postaci danych (pakowanie programów, tekstów, grafiki) ZIP, GIF rozdzielczość pionowa 64x48x8bpp = 3kB 124x768x8bpp=768kB 64x48x24bpp = 9kB 124x768x24bpp=2.25MB Kompresja stratna: nie jest moŝliwe odtworzenie oryginalnej postaci danych, ale postać skompresowana jest wystarczająco podobna do oryginału (pakowanie danych multimedialnych: grafika, dźwięk) JPG, MP3 rozdzielczość pozioma bpp bits per pixel Kompresja bezstratna Najczęściej uŝywane metody kompresji bezstratnej to: metody słownikowe, które polegają na poszukiwaniu dokładnych wystąpień danego ciągu znaków lub bitów, np. zastępują wyraz auto krótszą ilością bitów niŝ jest potrzebna na zakodowanie 4 niezwiązanych znaków. Jednak znajomość symbolu auto nie pociąga za sobą usprawnień w kompresowaniu np. wyrazu autor. metody statystyczne, które uŝywają mniejszej ilości bitów dla częściej występujących symboli. W przypadku praktycznie wszystkich, oprócz najprostszych metod, prawdopodobieństwa zaleŝą od kontekstu. A wiec np. dla liter sz uŝywają mniejszej ilości bitów niŝ dla dwóch oddzielnych znaków. Kompresja stratna Kompresja stratna jest moŝliwa ze względu na sposób działania ludzkich zmysłów, tj. zmienną wraŝliwość na odbiór róŝnych części danych. Algorytmy kompresji stratnej zazwyczaj posługują się modelami psychoakustycznymi, modelami psychowizualnymi itd., aby odrzucić najmniej istotne dane o dźwięku, obrazie, pozostawiając dane o wyŝszej wartości dla rozpoznawania tej informacji (akustycznej, wizualnej) przez zmysły. Nie istnieją algorytmy kompresji stratnej, które moŝna stosować do dowolnego typu danych (kompresja stratna plików wykonywalnych jest niemoŝliwa, gdyŝ nie jest to informacja odczytywana przez zmysły, a przez maszynę). Obraz: JPEG, Video: DivX, MPEG, Real Video Audio: MP3, OGG Vorbis, Real Audio, 11

JPEG Motto Obraz oryginalny Kompresja 75% There are 1 kinds of people: those who understand binary and those who do not. Kompresja 95% 12