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

Podobne dokumenty
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

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

Kodowanie informacji. Kody liczbowe

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

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

Pracownia Komputerowa wyk ad VII

Komunikacja człowiek-komputer

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

dr inż. Paweł Myszkowski

Kodowanie informacji. Przygotował: Ryszard Kijanka

dr inż. Jarosław Forenc

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

DZIESIĘTNY SYSTEM LICZBOWY

dr inż. Jarosław Forenc

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

dr inż. Jarosław Forenc

Systemy pozycyjne. Systemy niepozycyjne. Kodowanie liczb. Kodowanie znaków. dr inż. Jarosław Forenc

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

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

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

1.1. Pozycyjne systemy liczbowe

Pracownia komputerowa. Dariusz Wardecki, wyk. VIII

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

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

dr inż. Jarosław Forenc

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

Techniki multimedialne

O oszczędnym dziennikarzu, czyli czym jest

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

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

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

dr inż. Jarosław Forenc

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

Kodowanie liczb całkowitych w systemach komputerowych

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

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

Arytmetyka komputera

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

PODSTAWY INFORMATYKI. Informatyka? - definicja

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

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

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

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

1. System pozycyjny zapisu liczb

Wstęp do Informatyki

Temat 7. Dekodery, enkodery

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

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

Podstawy informatyki. Reprezentacja danych w systemach cyfrowych

Technologie Informacyjne

Pracownia Komputerowa wykład IV

Instrukcja dotycząca kodów kreskowych

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

Teoretyczne Podstawy Informatyki

Podstawy języka C++ Marek Pudełko

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

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

Systemy kodowania. Jolanta Bachan

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

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

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

Naturalny kod binarny (NKB)

Architektura komputerów

ARCHITEKTURA KOMPUTERÓW. Reprezentacja danych w komputerach

RODZAJE INFORMACJI. Informacje analogowe. Informacje cyfrowe. U(t) U(t) Umax. Umax. R=(0,Umax) nieskończony zbiór możliwych wartości. Umax.

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

Pracownia Komputerowa wyk ad IV

Arytmetyka binarna - wykład 6

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawy programowania w C++

Stan wysoki (H) i stan niski (L)

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Systemy liczbowe używane w technice komputerowej

Reprezentacja symboli w komputerze.

Podstawy działania układów cyfrowych...2 Systemy liczbowe...2 Kodowanie informacji...3 Informacja cyfrowa...4 Bramki logiczne...

architektura komputerów w. 2

Model warstwowy i architektura sieci komputerowej

Pracownia komputerowa. Dariusz Wardecki, wyk. IV

Pracownia Komputerowa wykład V

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

Cyfrowy zapis informacji

Technika Cyfrowa i Mikroprocesorowa

Urządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN):

Architektura komputerów

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Architektura komputerów

Technologie informacyjne (3) Zdzisław Szyjewski

Systemy zapisu liczb.

Podstawy Informatyki dla Nauczyciela

dr inż. Jarosław Forenc

Podstawy Informatyki

Informatyka kodowanie liczb. dr hab. inż. Mikołaj Morzy

Informatyka, Ćwiczenie Uruchomienie Microsoft Visual C++ Politechnika Rzeszowska, Wojciech Szydełko. I. ZałoŜenie nowego projektu

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

Technologie informacyjne (3) Zdzisław Szyjewski

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Transkrypt:

Rok akademicki 2007/2008, Wykład nr 3 2/55 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2007/2008 Wykład nr 3 (07.04.2008) Plan wykładu nr 3 Kodowanie liczb naturalny kod binarny (NKB) kod BCD kod 1 z N (pierścieniowy) kod 2 z 5 kod kołowy (Johnsona) kod Graya (refleksyjny) Kodowanie znaków kod ASCII kod ISO/IEC 646 kod ISO/IEC 8859 kod EBCDIC kod Windows-1250 Unicode Rok akademicki 2007/2008, Wykład nr 3 3/55 Rok akademicki 2007/2008, Wykład nr 3 4/55 Kodowanie Informacje przetwarzane przez komputer to liczby, ale takŝe inne obiekty, takie jak litery, wartości logiczne, obrazy, itp. KaŜda informacja przetwarzana przez komputer musi być reprezentowana za pomocą tylko za pomocą dwóch stanów: wysokiego (1 - jedynka) i niskiego (0 - zero) Konieczne są zatem reguły przekształcania róŝnych postaci informacji na informację binarną (zero-jedynkową) Proces przekształcania jednego rodzaju postaci informacji na inną postać nazywamy kodowaniem Podział kodów: liczbowe: NKB (Naturalny Kod Binarny), BCD, 1 z N, 2 z 5 alfanumeryczne: ASCII, ISO-8859, Unicode inne: Graya, Morse a Inny podział kodów: proste i detekcyjne (2 z 5, 1 z N, Graya) Kody liczbowe - Naturalny Kod Binarny (NKB) JeŜeli dowolnej liczbie dziesiętnej przyporządkujemy odpowiadającą jej liczbę binarną, to otrzymamy naturalny kod binarny (NKB)

Rok akademicki 2007/2008, Wykład nr 3 5/55 Rok akademicki 2007/2008, Wykład nr 3 6/55 Kody liczbowe - Naturalny Kod Binarny (NKB) W naturalnym kodzie binarnym za pomocą n-bitów moŝna zapisać liczbę dwójkową z zakresu: n X( 2) 0, 2 1 Kody liczbowe - Kod BCD Binary-Coded Decimal - dziesiętny zakodowany dwójkowo BCD - sposób zapisu liczb polegający na zakodowaniu kolejnych cyfr dziesiętnych liczby dwójkowo (NKB) przy uŝyciu czterech bitów Przykład (największe liczby dwójkowe): 1 bit 2 bity 3 bity L 8 bitów 10 bitów 16 bitów 32 bity 1 11 111 11111111 1111111111 11111111 11111111 11111111K 11111111 1 2 1 2 2 1 3 2 1 8 2 1 2 2 2 10 16 32 1 1 1 1 3 7 255 1 023 65 535 4 294 967 295 Liczba dziesiętna 0 1 2 3 4 BCD 0000 0001 0010 0011 0100 Liczba dziesiętna W ogólnym przypadku kodowane są tylko znaki 0 9, zaś pozostałe kombinacje bitowe są czasem stosowane do kodowania znaku liczby lub innych znaczników 5 6 7 8 9 BCD 0101 0110 0111 1000 1001 Rok akademicki 2007/2008, Wykład nr 3 7/55 Rok akademicki 2007/2008, Wykład nr 3 8/55 Kody liczbowe - Kod BCD Kod BCD umoŝliwia łatwą konwersję liczby do i z systemu dziesiętnego Przykład: Obecnie kod BCD stosowany jest głównie: } 1 } 6 } 8 0001 0110 1000? (BCD) 0001 0110 1000 (BCD) 1001 0101 0011 1001 { 0101 { 0011 { (BCD) w urządzeniach elektronicznych z wyświetlaczem cyfrowym (np. kalkulatory) w wielu komputerach BIOS przechowuje datę i czas w formacie BCD w zastosowaniach finansowych informatyki (zapis części ułamkowych kwot) 9 5 1001 0101 0011 3 (BCD)? 953 Kody liczbowe - Przechowywanie liczb w kodzie BCD UŜycie 4 najmłodszych bitów jednego bajta, 4 starsze bity są ustawiane na jakąś konkretną wartość: 0000 1111 (np. kod EBCDIC, liczby F0 (16) F9 (16) ) 0011 (tak jak w ASCII, liczby 30 (16) 39 (16) ) Zapis dwóch cyfr w kaŝdym bajcie (starsza na starszej połówce, młodsza na młodszej połówce) - jest to tzw. spakowane BCD (ang. packed BCD) w przypadku liczby zapisanej na kilku bajtach, najmniej znacząca tetrada (4 bity) uŝywane są jako flaga znaku standardowo przyjmuje się 1100 (C (16) ) dla znaku plus (+) i 1101 (D (16) ) dla znaku minus (-) Przykład: 127 127 0001 0010 0111 1100 0001 0010 0111 1101 (127C (127D (16) (16) ) )

Rok akademicki 2007/2008, Wykład nr 3 9/55 Rok akademicki 2007/2008, Wykład nr 3 10/55 Kody liczbowe - Kod BCD Arytmetyka w kodzie BCD: liczby w BCD nie są naturalnymi liczbami dwójkowymi, zatem nie moŝna nad nimi wykonywać normalnych działań arytmetycznych dodawanie liczb polega na wykonaniu zwykłego binarnego dodawania, a następnie jeśli otrzymany wynik jest większy od 9, to naleŝy skorygować go poprzez dodanie liczby 6 0110 w przypadku odejmowania odpowiednia korekcja jest realizowana poprzez odjęcie od wyniku liczby 6 0110 Przykład: 9 + 5 14 [1001] + [0101] [1110] [ 0000 1110] + [0000 0110] [0001 { 0100 { ] 1 4 Kody liczbowe - Wady i zalety BCD w stosunku do NKB Zalety: Wady: łatwiejsze obliczenia oraz zaokrąglanie liczb w systemie o podstawie dziesięć prostsze wyrównywanie liczb dziesiętnych przed wykonaniem operacji (np. 1,7 + 21,03) prostsza konwersja do postaci dogodnej do wyświetlenia (np. na wyświetlaczu 7-segmentowym), konwersja ta moŝe być wykonana w czasie liniowym niektóre wartości niecałkowite (np. 0,2) mają w kodzie BCD, w przeciwieństwie do NKB, skończoną reprezentację, dzięki temu system BCD wprowadza mniejsze błędy obliczeń operacje arytmetyczne w kodzie BCD (dodawanie, mnoŝenie) są bardziej skomplikowane w implementacji niŝ w NKB nadmiarowość - na 4 bitach moŝna zapisać 16 róŝnych wartości, a BCD wykorzystuje tylko 10 z nich operacje wykonywane w praktycznie istniejących implementacjach BCD są wolniejsze niŝ NKB Rok akademicki 2007/2008, Wykład nr 3 11/55 Rok akademicki 2007/2008, Wykład nr 3 12/55 Kody liczbowe - Kod BCD Kod BCD ma kilka wariantów Na poprzednich slajdach przedstawiono jego podstawową postać nazywaną BCD 8421 lub SBCD (Simple Binary - Coded Decimal) W pozostałych wariantach poszczególne cyfry są kodowane w inny sposób Kody liczbowe - Kod Excess-3 Kod Excess-3 (XS-3, z nadmiarem 3) powstaje poprzez dodanie wartości 3 do cyfry dziesiętnej i zapisanie jej w kodzie BCD Cyfry 5-9 są lustrzanym odbiciem cyfr 0-4 z zanegowanymi bitami Porównanie zapisu liczb: 0001 0110 1000 0011 1001 1011 (BCD8421) (Excess 3)

Rok akademicki 2007/2008, Wykład nr 3 13/55 Rok akademicki 2007/2008, Wykład nr 3 14/55 Kody liczbowe - Kod Excess-3 Zaletą tego sposobu kodowania jest regularność algorytmów dodawania i odejmowania, gdyŝ wynik jest korygowany w kaŝdym przypadku przy dodawaniu dwóch liczb w kodzie Excess-3 otrzymany wynik nie jest liczbą w kodzie Excess-3 po zakończeniu dodawania, jeśli otrzymana liczba jest mniejsza niŝ 10 naleŝy odjąć 3 11, natomiast jeśli otrzymana liczba jest większa lub równa 10, to naleŝy dodać 3 11 Przykład: 2 0101 + 4 (XS 3) 6 + 0111 (XS 3) 3 1100 1001(XS 3) 14243 6 1100 { 9 Kody liczbowe - Kod BCD 2421 (Aikena( Aikena) Kod Aikena jest kodem wagowym BCD o wagach 2,4,2,1 W kodzie Aikena cyfry od 0 do 4 koduje się z wyzerowanym najstarszym bitem, natomiast cyfry od 5 do 9 z ustawionym najstarszym bitem Cyfry 5-9 są lustrzanym odbiciem cyfr 0-4 z zanegowanymi bitami Porównanie zapisu liczb: 0001 0110 1000 0001 1100 1110 (BCD8421) (BCD2421) Rok akademicki 2007/2008, Wykład nr 3 15/55 Rok akademicki 2007/2008, Wykład nr 3 16/55 Kody liczbowe - Kod BCD 84-2-1 Cyfry 5-9 są lustrzanym odbiciem cyfr 0-4 z zanegowanymi bitami Kody liczbowe - Kod BCD Przykład zastosowania kodu BCD 8421 Kod 84-2-1 jest kodem samouzupełnieniowym Porównanie zapisu liczb: 0001 0110 1000 0111 1010 1000 (BCD8421) (BCD84 2 1) h m s

Rok akademicki 2007/2008, Wykład nr 3 17/55 Rok akademicki 2007/2008, Wykład nr 3 18/55 Kody liczbowe - Kod 1 z N (pierścieniowy) W kodzie 1 z N długość słowa jest równa N czyli liczbie kodowanych słów Kody liczbowe - Kod 2 z 5 Właściwości: Najbardziej jest rozpowszechniony kod 1 z 10 Kod 1 z 10 jest kodem wagowym o wagach 9876543210 Kod 1 z N jest kodem detekcyjnym W kodzie tym moŝna w czasie wykonywania operacji kontrolować liczbę jedynek - wykrycie braku jedynki lub wykrycie dwóch lub więcej jedynek wskazuje na błąd kod 5-bitowy - jeden znak kodowany jest na 5 bitach (2 bity są zawsze równe jeden, a 3 bity są zawsze równe zeru) moŝna zakodować 10 znaków, koduje cyfry dziesiętne, kody nie są wzajemnie jednoznaczne (ta sama wartość moŝe być zakodowana w róŝny sposób) kod stałowagowy, występuje w wielu wersjach, zaleŝnie od przyjętych wag, np. 01236, 01234, 74210 kod detekcyjny kod 2 z 5 jest stosowany przede wszystkim w kodach kreskowych Rok akademicki 2007/2008, Wykład nr 3 19/55 Rok akademicki 2007/2008, Wykład nr 3 20/55 Kody liczbowe - Kod kołowy owy (Johnsona) W kodzie kołowym zwiększa się liczba stanów 1 (począwszy od najmniej znaczącego bitu) aŝ do wszystkich bitów równych 1 Następnie stanów 1 zaczyna ubywać (począwszy od najmniej znaczącego bitu) aŝ do osiągnięcia wartości 10000 Kolejną wartością po 10000 będzie ponownie 00000 5-bitowy kod kołowy nazywany jest kodem Johnsona Kod kołowy stosowany jest w przetwornikach jako pośredni do otrzymania kodu binarnego (NKB) na wyjściu Kody liczbowe - Kod Graya (refleksyjny) Kod dwójkowy bezwagowy, niepozycyjny, charakteryzujący się tym, Ŝe dwa kolejne słowa kodowe róŝnią się tylko stanem jednego bitu Kod cykliczny - ostatni i pierwszy wyraz tego kodu równieŝ spełniają powyŝszą zasadę Konstrukcja kodu Graya: dopisz te same słowa kodowe, ale w odwrotnej kolejności (lustrzane odbicie) do początkowych wyrazów dopisz bit o wartości 0, natomiast do odbitych lustrzanie bit o wartości 1

Rok akademicki 2007/2008, Wykład nr 3 21/55 Rok akademicki 2007/2008, Wykład nr 3 22/55 Kody liczbowe - Kod Graya (refleksyjny) Konwersja z kodu NKB na kod Graya przesunąć liczbę w postaci binarnej (NKB) o jeden bit w prawo (podzielić przez 2) wykonać operację XOR na bitach liczby w postaci binarnej (NKB) i wyniku dzielenia liczby przez 2 Kody liczbowe - Kod Graya (refleksyjny) Konwersja z kodu Graya na kod binarny NKB przyjmij pierwszą cyfrę kodu NKB równą pierwszej cyfrze (od lewej) kodu Graya kaŝdą kolejną cyfrę oblicz jako róŝnicę symetryczną (XOR) odpowiedniej cyfry kodu Graya i poprzednio wyznaczonej cyfry kodu NKB Przykład: Przykład: 9 1001 1101? (GRAY) (GRAY) 1001 >> 1 0100 1001 XOR 0100 Gray 1101 1101 1101 1101 1 xor 1 0 xor 0 0 1 xor XOR 1 1 0 0 1 NKB 1 10 100 1001 Rok akademicki 2007/2008, Wykład nr 3 23/55 Rok akademicki 2007/2008, Wykład nr 3 24/55 Kody liczbowe - Kod Graya Zastosowania: Kody liczbowe - Kod Graya Zastosowania: w przetwornikach analogowo-cyfrowych, szczególnie w systemach, gdzie występują po sobie kolejne wartości, np. mechaniczne przetworniki kąt-cyfra (dekoder kąta obrotu wału) kod Graya stosowany jest do etykietowania pojedynczych procesorów w sieci będącej hiperkostką etykiety sąsiednich procesorów róŝnią się tylko jednym bitem 0 1

Rok akademicki 2007/2008, Wykład nr 3 25/55 Rok akademicki 2007/2008, Wykład nr 3 26/55 Kod ASCII ASCII - American Standard Code for Information Interchange Kod ASCII - Kody sterujące Kody sterujące - 33 kody (0-31, 127) 7-bitowy kod przyporządkowujący liczby z zakresu 0-127 literom (alfabetu angielskiego), cyfrom, znakom przestankowym i innym symbolom oraz poleceniom sterującym litery, cyfry oraz inne znaki drukowane tworzą zbiór znaków ASCII - jest to 95 znaków o kodach 32-126 pozostałe 33 kody (0-31 i 127) to tzw. kody sterujące słuŝące do sterowania urządzeniem odbierającym komunikat, np. drukarką czy terminalem Dec Hex Char 0 0 NUL 1 1 SOH 2 2 STX 3 3 ETX 4 4 EOT 5 5 ENQ 6 6 ACK 7 7 BEL 8 8 BS 9 9 TAB 10 A LF 11 B VT 12 C FF 13 D CR 14 E SO 15 F SI (null) (start of heading) (start of text) (end of text) (end of tramsmission) (enquiry) (acknowledge) (bell) (backspace) (horizontal tab) (NL line feed, new line) (vertical tab) (NP form feed, new page) (carriage return) (shift out) (shift in) Dec Hex Char 16 10 DLE 17 11 DC1 18 12 DC2 19 13 DC3 20 14 DC4 21 15 NAK 22 16 SYN 23 17 ETB 24 18 CAN 25 19 EM 26 1A SUB 27 1B ESC 28 1C FS 29 1D GS 30 1E RS 31 1F US 127 7F DEL (data link escape) (device control 1) (device control 2) (device control 3) (device control 4) (negative acknowlege) (synchronous idle) (end of trans. block) (cancel) (end of medium) (subtitute) (escape) (file separator) (group separator) (record separator) (unit separator) Rok akademicki 2007/2008, Wykład nr 3 27/55 Rok akademicki 2007/2008, Wykład nr 3 28/55 Kod ASCII - Kody sterujące a język j C Kod ASCII - Pliki tekstowe 0 0 (16) NUL - koniec łańcucha znaków, zapis: \0 7 7 (16) BEL - alarm, dźwięk głośniczka, zapis: \a 8 8 (16) BS - klawisz Backspace 9 9 (16) TAB - tabulacja (odstęp), zapis: \t 10 A (16) LF - przejście do nowego wiersza, zapis: \n 13 D (16) CR - powrót na początek wiersza, zapis: \r 27 1B (16) ESC - klawisz Escape 127 7F (16) DEL - klawisz Delete elementami pliku tekstowego są wiersze, mogą one mieć róŝną długość w systemie DOS/Windows kaŝdy wiersz pliku zakończony jest parą znaków: CR, ang. carriage return - powrót karetki, kod ASCII - 13 0D (16) LF, ang. line feed - przesunięcie o wiersz, kod ASCII - 10 0A (16) załóŝmy, Ŝe plik tekstowy ma postać: rzeczywista zawartość pliku jest następująca: wydruk zawiera: przesunięcie od początku pliku (szesnastkowo), wartości poszczególnych bajtów pliku (szesnastkowo) i znaki odpowiadające tym wartościom (traktując wartości jako kody ASCII)

Rok akademicki 2007/2008, Wykład nr 3 29/55 Rok akademicki 2007/2008, Wykład nr 3 30/55 Kod ASCII - Pliki tekstowe w czasie wczytywania tekstu z pliku do pamięci komputera znaki CR i LF zastępowane są jednym znakiem - LF znak LF w języku C reprezentowany jest przez \n, zaś CR - przez \r Kod ASCII - Pliki tekstowe w systemie Linux znakiem końca wiersza jest tylko LF o kodzie ASCII - 10 0A (16) załóŝmy, Ŝe plik tekstowy ma postać: #include <stdio.h> int main() { printf("%d %X\n", \n, \n ); } return (0); 10 A przy zapisywaniu łańcucha znaków do pliku tekstowego mamy sytuację odwrotną - znak LF zastępowany jest parą CR i LF rzeczywista zawartość pliku jest następująca: podczas przesyłania pliku tekstowego (np. przez protokół ftp) z systemu Linux do systemu DOS/Windows pojedynczy znak LF zamieniany jest automatycznie na parę znaków CR i LF błędne przesłanie pliku tekstowego (w trybie binarnym) powoduje nieprawidłowe jego wyświetlanie: Rok akademicki 2007/2008, Wykład nr 3 31/55 Rok akademicki 2007/2008, Wykład nr 3 32/55 ISO/IEC 646 ISO/IEC 646 - odmiany narodowe ISO/IEC 646 - norma definiująca modyfikację 7-bitowego kodowania ASCII W normie określono 10 pozycji, na których mogły być umieszczane znaki w języku kraju, który przyjął tę normę oraz 2 pozycje na znaki walut 0 1 2 3 4 5 6 7 8 9 A B C D E F 00 Znaki kontrolne 10 20 SP! " # $ % & ( ) * +, -. / 30 0 1 2 3 4 5 6 7 8 9 : ; < >? 40 @ A B C D E F G H I J K L M N O 50 P Q R S T U V W X Y Z [ \ ] ^ _ 60 ` a b c d e f g h i j k l m n o 70 p q r s t u v w x y z { } ~ Ŝółty - znaki narodowe niebieski - znaki walut Wszystkie pozostałe znaki są zgodne z ASCII Kodowanie to stosowano w latach 70-tych i 80-tych

Rok akademicki 2007/2008, Wykład nr 3 33/55 Rok akademicki 2007/2008, Wykład nr 3 34/55 Rozszerzenia ASCII - strony kodowe PoniewaŜ kod ASCII jest w podstawowej wersji 7-bitowy, a większość komputerów pracuje na 8-bitowych bajtach, to dodatkowy bit jest wykorzystywany do powiększenia zbioru kodowanych znaków Powstało wiele róŝnych rozszerzeń ASCII wykorzystujących ósmy bit, nazywanych stronami kodowymi Strona kodowa - sposób na przypisanie poszczególnym kodom binarnym róŝnych znaków pisarskich róŝne strony kodowe mogą przyjąć odmienne znaki dla tego samego kodu róŝne strony kodowe mogą róŝnić się wyborem znaków duŝa liczba dostępnych stron kodowych wynika z faktu, iŝ na 8 bitach moŝna zakodować tylko 256 róŝnych znaków, co jest niewystarczające do zmieszczenia w jednym zestawie znaków wszystkich alfabetów problem stron kodowych został rozwiązany po wprowadzeniu Unicode 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 80-tych, po czym zostały uznane przez ISO Wszystkie zestawy ISO 8859 mają znaki 0-127 (00 (16) -7F (16) ) takie same jak w kodzie ASCII Pozycjom 128-159 (80 (16) -9F (16) ) przypisane są dodatkowe kody sterujące, tzw. C1 (obecnie nie są uŝywane) W czerwcu 2004 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-2) i Unicode Rok akademicki 2007/2008, Wykład nr 3 35/55 Rok akademicki 2007/2008, Wykład nr 3 36/55 ISO/IEC 8859 ISO/IEC 8859-1 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-10 (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-10) - łaciński dla Europy środkowej ISO/IEC 8859-1, Latin-1 - pierwsza część standard ISO/IEC 8859 kodowania znaków ( zachodnioeuropejskie ) kodowanie uŝywane w Amerykach, Europie Zachodniej, Oceanii i większej części Afryki dostępne języki: albański, angielski, baskijski, duński, estoński, fiński, francuski, hiszpański, irlandzki, islandzki, kataloński, łaciński, niderlandzki, niemiecki, norweski, portugalski, retoromański, szkocki, szwedzki, włoski składa się ze 191 znaków łacińskiego pisma po rozszerzeniu o dodatkowe przypisania znaków jest podstawą dla dwóch mapowań znaków ISO-8859-1 i Windows-1252 SP - spacja NBSP - twarda spacja SHY - miękki dywiz (myślnik)

Rok akademicki 2007/2008, Wykład nr 3 37/55 Rok akademicki 2007/2008, Wykład nr 3 38/55 ISO/IEC 8859-2 ISO/IEC 8859-2 - Kodowanie polskich znaków ISO/IEC 8859-2, Latin-2 ( środkowo-, wschodnioeuropejskie ) 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 składa się ze 191 znaków łacińskiego pisma zapisywanych na 8-bitach kody z przedziałów 00 (16) -1F (16) oraz 7F (16) -9F (16) nie są uŝywane w ISO-8859-2 kodowanie to jest zgodne z Polską Normą SP - spacja NBSP - twarda spacja SHY - miękki dywiz (myślnik) 18 znaków: Ą - ą Ć - ć Ę - ę Ł - ł Ń - ń Ó - ó Ś - ś Ź - ź ś - Ŝ Rok akademicki 2007/2008, Wykład nr 3 39/55 Rok akademicki 2007/2008, Wykład nr 3 40/55 ISO/IEC 8859-1 1 i ISO/IEC 8859-2 - porównanie EBCDIC EBCDIC - Extended Binary Coded Decimal Interchange Code 8-bitowe kodowanie znaków stworzone jako rozszerzenie kodowania BCD umoŝliwia zapisanie do 256 róŝnych symboli pojedynczy znak zapisywany jest na 8-bitach podzielonych na dwie części pierwsze 4 bity oznaczają grupę do jakiej dany znak naleŝy ostatnie 4 bity identyfikują konkretny znak kody EBCDIC nie są zgodne z ASCII EBCDIC występowało w wielu wersjach, odmiennych dla róŝnych państw większość stron kodowych EBCDIC dopuszczała stosowanie tylko dwóch języków (angielski + dodatkowy)

Rok akademicki 2007/2008, Wykład nr 3 41/55 Rok akademicki 2007/2008, Wykład nr 3 42/55 EBCDIC Kodowanie EBCDIC oraz ISO 8859-1 - porównanie kodowanie EBCDIC było uŝywane głównie w systemach IBM (komputery: z/os, VM, OS/390, systemy operacyjne: OS/400, i5/os) w latach 60-tych XX wieku ułatwiało wprowadzanie danych do komputera przy uŝyciu kart perforowanych (dziurkowanych) nie ma szczególnej przewagi nad systemami kodowania wywodzącymi się z ASCII (ISO 8859, Unicode), a wręcz czasem sprawia problemy brak zachowania kolejności liter zgodnie z kolejnością kodów, np. po R nie ma S na rysunku przedstawiony jest jeden z wariantów EBCDIC - CCSID 500 Rok akademicki 2007/2008, Wykład nr 3 43/55 Rok akademicki 2007/2008, Wykład nr 3 44/55 Windows-1250 ISO 8859-2 2 i Windows-1250 - porównanie Windows-1250 (CP-1250) - 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 (ale takŝe niemiecki) Windows-1250 jest podobny do ISO 8859-2 - posiada wszystkie jego drukowalne znaki (a takŝe kilka dodatkowych), lecz kilka z nich zajmuje inne miejsca

Rok akademicki 2007/2008, Wykład nr 3 45/55 Rok akademicki 2007/2008, Wykład nr 3 46/55 Problem kodowania polskich znaków Problem z wyświetlaniem polskich znaków Tekst zapisany w standardzie ISO-8859-2: Ą Ć Ę Ł Ń Ó Ś Ź ś ą ć ę ł ń ó ś ź Ŝ Tekst wyświetlony w Notatniku systemu Windows (Windows-1250): ˇ Ć Ę Ł Ń Ó ś ± ć ę ł ń ó Ľ Ŝ Problem kodowania polskich znaków W Polsce stosowanych było ok. 20 standardów kodowania polskich liter Problematyka polskich liter opisana jest na http://www.ogonki.agh.edu.pl Próby wprowadzania standardu: standard Mazovia - promowany przez społeczność informatyczną w Polsce (nie był pełną stroną kodową, ale określał sposób kodowania polskich liter) IBM-Latin-2 (CP-852) - wprowadzony przez IBM i Microsoft, stosowany w DOS, OS/2 i części systemu Windows CP-1250 (Windows-1250) - wprowadzony przez Microsoft w MS Windows PL ISO-Latin-2 (ISO 8859-2) - stosowany w Internecie Standard ISO 8859-2 jest zgodny z Polską Normą PN-93 T-42118 Technika informatyczna. Znormalizowane zbiory znaków graficznych przeznaczone do stosowania w kodach 8-bitowych (1993 rok) Rok akademicki 2007/2008, Wykład nr 3 47/55 Rok akademicki 2007/2008, Wykład nr 3 48/55 Problem kodowania polskich znaków Najczęściej stosowane standardy kodowania są przedstawione w tabeli Unicode Unicode - w Polsce uŝywana jest takŝe nazwa Unikod Unicode - komputerowy zestaw znaków mający w zamierzeniu obejmować wszystkie pisma i inne znaki (symbole muzyczne, techniczne, wymowy) uŝywane na świecie Unicode przypisuje unikalny numer kaŝdemu znakowi, niezaleŝny od uŝywanej platformy, programu czy języka Unikod reprezentuje znaki w postaci abstrakcyjnej pozostawiając postać wizualną (rozmiar, kształt, czcionkę, styl) innemu oprogramowaniu Definiowany jest przez dwa standardy, w których znaki są identyczne: Unicode i ISO/IEC 10646 Standard Unicode zaimplementowany został w wielu nowych technologiach, np. XML, Java, Microsoft.NET Framework, nowe systemy operacyjne

Rok akademicki 2007/2008, Wykład nr 3 49/55 Rok akademicki 2007/2008, Wykład nr 3 50/55 Unicode Rozwijany jest przez konsorcjum, w skład którego wchodzą firmy komputerowe, producenci oprogramowania oraz grupy uŝytkowników Konsorcjum: http://www.unicode.org Strona polska: http://www.unikod.pl (ostatnia aktualizacja: 2005 rok) Pierwsza wersja: Unicode 1.0 (październik 1991) Ostatnia wersja: Unicode 5.0 (18.07.2006) The Unicode Standard, Version 5.0, Fifth Edition, The Unicode Consortium, Addison-Wesley Professional, 27 October 2006. koduje 98 884 znaki graficzne Następna wersja: Unicode 5.1 (04.04.2008) Unicode Standard Unicode definiuje kody numeryczne przypisane poszczególnym znakom, nie określa natomiast sposobu bajtowego kodowania znaków Kodowanie określa sposób w jaki znaki ze zbioru mają być zapisane w postaci binarnej Istnieje kilka metod kodowania oznaczanych skrótami: UCS - Universal Character Set UTF - Unicode Transformation Format Metody kodowania: UTF-7 - przestarzałe, 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 UTF-EBCDIC - kodowanie 8-bitowe ze zmienną długością kodowania, kompatybilne z EBCDIC (nie jest częścią standardu Unicode) Rok akademicki 2007/2008, Wykład nr 3 51/55 Rok akademicki 2007/2008, Wykład nr 3 52/55 Unicode - Zakresy Zakres: Znaczenie: 0000-007F Basic Latin (to samo co w ASCII) 0080-00FF Latin-1 Supplement (to samo co w ISO/IEC 8859-1) 0100-017F Latin Extended-A 0180-024F Latin Extended-B 0250-02AF IPA Extensions 02B0-02FF Spacing Modifiers Letters... 0370-03FF Greek 0400-04FF Cyrillic... 1D00-1D7F 1D80-1DBF 1E00-1EFF 1F00-1FFF... Phonetic Extensions Phonetic Extensions Supplement Latin Extended Additional Greek Extended Unicode - kodowanie UTF-8 UTF-8 - system kodowania ze zmienną długością reprezentacji znaku Znaki Unikodu są mapowane na ciągi bajtów 0x00 do 0x7F - bity 0xxxxxxx 0x80 do 0x7FF - bity 110xxxxx 10xxxxxx 0x800 do 0xFFFF - bity 1110xxxx 10xxxxxx 10xxxxxx 0x10000 do 0x1FFFFF - bity 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 0x200000 do 0x3FFFFFF - bity 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 0x4000000 do 0x7FFFFFFF - bity 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx Z powodu takiego kodowania ten sam znak moŝna zapisać na kilka sposobów Kodowanie UTF-8 powszechnie stosowane jest w większości Unixopodobny systemów operacyjnych

Rok akademicki 2007/2008, Wykład nr 3 53/55 Rok akademicki 2007/2008, Wykład nr 3 54/55 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 o kaŝdym bajcie wiadomo czy jest początkiem znaku, czy teŝ leŝy w środku Wady kodowania UTF-8 znaki alfabetów niełacińskich zajmują po dwa bajty zamiast jednego jak jest to w kodowaniach narodowych obecnie większość zastosowań w Internecie (poczta elektroniczna, usenet, HTML) wymaga deklarowania UTF-8 zgodnie ze standardem MIME, dopiero w XHTML UTF-8 jest kodowaniem domyślnym Unicode - kodowanie UTF-32/UCS 32/UCS-4 UTF-32/UCS-4 - sposób kodowania standardu Unicode wymagający uŝycia 32-bitowych słów Kod znaku ma zawsze długość 4 bajtów i przedstawia numer znaku w tabeli Unikodu Kody obejmują zakres od 0 do 0x7FFFFFFF Zaletą tego kodowania jest stała długość kodu kaŝdego znaku Kodowanie to jest jednak bardzo nieefektywne - zakodowane ciągi znaków są 2-4 razy dłuŝsze niŝ ciągi tych samych znaków zapisanych w innych kodowaniach MIME - standard stosowany przy przesyłaniu poczty elektronicznej, listy wysyłane przy uŝyciu MIME muszą być zapisane w ASCII (przesyłanie danych 8-bitowych wymaga ich zakodowania na dane 7-bitowe, jak w ASCII) Rok akademicki 2007/2008, Wykład nr 3 55/55 Unicode - polskie znaki Kod 0105 0107 0119 0142 0144 00F3 015B 017A 017C 0104 0106 0118 0141 0143 00D3 015A 0179 017B Litera ą ć ę ł ń ó ś ź Ŝ Ą Ć Ę Ł Ń Ó Ś Ź ś Opis LATIN SMALL LETTER A WITH OGONEK LATIN SMALL LETTER C WITH ACUTE LATIN SMALL LETTER E WITH OGONEK LATIN SMALL LETTER L WITH STROKE LATIN SMALL LETTER N WITH ACUTE LATIN SMALL LETTER O WITH ACUTE LATIN SMALL LETTER S WITH ACUTE LATIN SMALL LETTER Z WITH ACUTE LATIN SMALL LETTER Z WITH DOT ABOVE LATIN CAPITAL LETTER A WITH OGONEK LATIN CAPITAL LETTER C WITH ACUTE LATIN CAPITAL LETTER E WITH OGONEK LATIN CAPITAL LETTER L WITH STROKE LATIN CAPITAL LETTER N WITH ACUTE LATIN CAPITAL LETTER O WITH ACUTE LATIN CAPITAL LETTER S WITH ACUTE LATIN CAPITAL LETTER Z WITH ACUTE LATIN CAPITAL LETTER Z WITH DOT ABOVE