dr inż. Jarosław Forenc

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

Kodowanie informacji. Kody liczbowe

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

dr inż. Jarosław Forenc

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

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

Kodowanie informacji. Przygotował: Ryszard Kijanka

Pracownia Komputerowa wyk ad VII

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

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

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

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

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

Techniki multimedialne

dr inż. Jarosław Forenc

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

1.1. Pozycyjne systemy liczbowe

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

dr inż. Jarosław Forenc

Arytmetyka komputera

DZIESIĘTNY SYSTEM LICZBOWY

Kodowanie liczb całkowitych w systemach komputerowych

Komunikacja człowiek-komputer

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

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

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

Podstawy informatyki. Reprezentacja danych w systemach cyfrowych

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

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

Technologie Informacyjne

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

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

Temat 7. Dekodery, enkodery

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

Systemy liczbowe używane w technice komputerowej

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

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

Znaki w tym systemie odpowiadają następującym liczbom: I=1, V=5, X=10, L=50, C=100, D=500, M=1000

dr inż. Paweł Myszkowski

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

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

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

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

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

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

Architektura komputerów

Teoretyczne Podstawy Informatyki

Podstawy Informatyki dla Nauczyciela

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

Systemy zapisu liczb.

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

Pracownia Komputerowa wykład IV

Technika Cyfrowa i Mikroprocesorowa

PODSTAWY INFORMATYKI. Informatyka? - definicja

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

Stan wysoki (H) i stan niski (L)

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

L6.1 Systemy liczenia stosowane w informatyce

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

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

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

Architektura komputerów

Pracownia komputerowa. Dariusz Wardecki, wyk. VIII

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

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

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

Naturalny kod binarny (NKB)

Arytmetyka binarna - wykład 6

Pracownia Komputerowa wyk ad IV

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

Podstawy programowania w C++

Moduł 2 Zastosowanie systemów liczbowych w informacji cyfrowej

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Wstęp do Informatyki

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

Pracownia Komputerowa wykład V

Dr inż. Jan Chudzikiewicz Pokój 117/65 Tel Materiały:

Architektura komputerów

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

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

Wykład I: Kodowanie liczb w systemach binarnych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

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

1. Wprowadzanie danych z klawiatury funkcja scanf

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

1. Systemy liczbowe. addytywne systemy w których wartośd liczby jest sumą wartości jej znaków cyfrowych.

SYSTEMY LICZBOWE 275,538 =

System Liczbowe. Szesnastkowy ( heksadecymalny)

Systemy liczbowe. Laura Robińska

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

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

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

Cyfrowy zapis informacji

Programowanie Niskopoziomowe

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

ZAMIANA SYSTEMÓW LICZBOWYCH

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Transkrypt:

Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 2011/2012 Wykład nr 2 (16.03.2012) dr inż. Jarosław Forenc

Rok akademicki 2011/2012, Wykład nr 2 2/50 Plan wykładu nr 2 Systemy pozycyjne systemy pozycyjne a język C zastosowania systemów pozycyjnych Systemy niepozycyjne system rzymski 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, ISO/IEC 646, ISO/IEC 8859 EBCDIC, Windows-1250

Rok akademicki 2011/2012, Wykład nr 2 3/50 Systemy pozycyjne a język C W języku C liczby mogą być zapisywane w trzech systemach: dziesiętnym (domyślnie), np. 1239 ósemkowym (zaczynają się od zera - 0), np. 011 (11 (8) = 9 (10) ) szesnastkowym (zaczynają się od 0x lub 0X), np. 0x11 (11 (16) = 17 (10) ) Do wyświetlenia liczby funkcją printf() stosowane są następujące specyfikatory formatu: liczba dziesiętna: %d, %i liczba ósemkowa: %o liczba szesnastkowa: %x, %X Do wczytania liczby funkcją scanf() stosowane są następujące specyfikatory formatu: liczba dziesiętna: %d (typ int), %D (typ long) liczba ósemkowa: %o (typ int), %O (typ long) liczba szesnastkowa: %x (typ int), %X (typ long)

Rok akademicki 2011/2012, Wykład nr 2 4/50 Systemy pozycyjne a język C #include <stdio.h> #include <stdlib.h> int main() { int x1 = 456; /* system dziesietny */ int x2 = 0710; /* system osemkowy */ int x3 = 0x1C8; /* system szesnastkowy */ Dziesietny: 456 456 456 Osemkowy: 710 710 710 Szesnastkowy: 1c8 1c8 1c8 Szesnastkowy: 1C8 1C8 1C8 printf("dziesietny: %d %d printf("osemkowy: %o %o printf("szesnastkowy: %x %x printf("szesnastkowy: %X %X %d\n",x1,x2,x3); %o\n",x1,x2,x3); %x\n",x1,x2,x3); %X\n",x1,x2,x3); } system("pause"); return 0;

Rok akademicki 2011/2012, Wykład nr 2 5/50 System dwójkowy - zastosowania System dwójkowy, nazywany także binarnym: p = 2, D = {0,1} Powszechnie używany w elektronice cyfrowej i informatyce

Rok akademicki 2011/2012, Wykład nr 2 6/50 System ósemkowy - zastosowania Ósemkowy, oktalny, oktogonalny: p = 8, D = {0,1,2,3,4,5,6,7} Obecnie jego zastosowanie jest znikome Przykład: w systemie Linux/Unix do zmiany praw user group other rwx rwx rwx dostępu do plików i katalogów stosowane jest polecenie chmod chmod tryb plik... tryb może być liczbą ósemkową lub wyrażeniem symbolicznym r w x / + - = / u g o a chmod g+x data tryb jako liczba ósemkowa jest sumą wartości przedstawionych na rysunku 001 002 004 010 020 040 100 200 400

Rok akademicki 2011/2012, Wykład nr 2 7/50 System ósemkowy - zastosowania Ósemkowy, oktalny, oktogonalny: p = 8, D = {0,1,2,3,4,5,6,7} Obecnie jego zastosowanie jest znikome Przykład: r-x rw- rwx 100 0 400 0 20 40 1 2 4 Obliczenia: 400 + 0 + 100 = 500 40 + 20 + 0 = 60 4 + 2 + 1 = 7 500 + 60 + 7 = 567 chmod 567 plik

Rok akademicki 2011/2012, Wykład nr 2 8/50 System dziesiętny - zastosowania Dziesiętny, dziesiątkowy: p = 10, D = {0,1,2,3,4,5,6,7,8,9} Podstawowy system stosowany w niemal wszystkich krajach Od XVI wieku stosowano go obok systemu rzymskiego w: nauce księgowości bankowości Zdaniem antropologów o przyjęciu systemu dziesiętnego przesądziło posiadanie przez człowieka 10 palców ułatwiających liczenie w systemie dziesiętnym

Rok akademicki 2011/2012, Wykład nr 2 9/50 System dwunastkowy - zastosowania Dwunastkowy: p = 12, D = {0,1,2,3,4,5,6,7,8,9,A,B} Uważany przez matematyków za system praktyczniejszy niż dziesiętny, gdyż 12 ma 4 dzielniki naturalne (2,3,4,6) a liczba 10 - tylko dwa (2,5) Wcześniej był częściej stosowany, o czym świadczą niestandardowe nazwy liczebników 11 i 12 w niektórych językach, np. w języku angielskim (11 - eleven, 12 - twelve) Stosowany jest do pomiaru długości (USA): stopa = 12 cali cal = 12 linii linia = 12 punktów

Rok akademicki 2011/2012, Wykład nr 2 10/50 System dwunastkowy - zastosowania Z systemu dwunastkowego wywodzą się pojęcia: tuzin (12 sztuk) kopa (5 tuzinów = 60 sztuk) gros (12 tuzinów = 144 sztuki) Na systemie tym opiera się rachuba czasu: rok dzieli się na 12 miesięcy doba dzieli się na 24 godziny godzina na 60 minut minuta na 60 sekund W niektórych kulturach liczba 12 ma szczególny status, np. 12 znaków zodiaku 12 bogów olimpijskich 12 plemion Izraela 12 apostołów 12 gwiazd na fladze UE

Rok akademicki 2011/2012, Wykład nr 2 11/50 System szesnastkowy - zastosowania Szesnastkowy, heksadecymalny: p = 16, D = {0,1,,9,A,B,,E,F} Powszechnie używany w informatyce Jeden bajt można zapisać za pomocą tylko dwóch cyfr w systemie szesnastkowym: 00000000 (2) 00 (16) 00001111 (2) 0F (16) 1111 1111 (2) FF (16) 11110000 (2) F0 (16) Dzięki powyższej właściwości system ten nadaje się do zapisu bardzo dużych liczb, np. adresów w pamięci Wiele programów wyświetla zawartość pamięci w systemie szesnastkowym

Rok akademicki 2011/2012, Wykład nr 2 12/50 System szesnastkowy - zastosowania Adresy sprzętowe MAC urządzeń sieciowych podawane są w systemie szesnastkowym, np. 00:0A:E6:3E:FD:E1 Stosowany jest w HTML do zapisu 24-bitowych kolorów RGB

Rok akademicki 2011/2012, Wykład nr 2 13/50 System sześćdziesiątkowy - zastosowania Używany w Babilonie (1750 p.n.e.) skąd dotarł do Europy Obecnie jest używany w związku z jednostkami czasu: godzina dzieli się na 60 minut minuta dzieli się na 60 sekund Powszechnie występuje przy podawaniu miar kątów, a zwłaszcza długości i szerokości geograficznej Zaletą tego systemu jest podzielność liczby 60 przez 2, 3, 4, 5, 6, 10, 12, 15, 20, 30 i 60 Dzięki powyższej podzielności ułamki mają formę liczb całkowitych Przykład: autobus jeździ 3 razy na godzinę rozkład jazdy w systemie sześćdziesiątkowym: 7 00 ; 7 20 ; 7 40 ; 8 00 rozkład jazdy w systemie dziesiętnym: 7,0; 7,3333

Rok akademicki 2011/2012, Wykład nr 2 14/50 Przykład systemu niepozycyjnego - system rzymski W systemie rzymskim posługujemy się siedmioma znakami: I - 1 V - 5 X - 10 L - 50 C - 100 D - 500 M - 1000 Za pomocą dostępnych symboli można określić liczby od 1 do 3999 System addytywny - wartość liczby określa się na podstawie sumy wartości cyfr, np. II (1+1=2), XXX (10+10+10=30) CLX (100+50+10=160), MMXII (1000+1000+10+1+1=2012) Wyjątkiem od powyższej zasady są liczby do opisu których używa się odejmowania, np. IV (5-1=4), IX (10-1=9), XL (50-10=40), XC (100-10=90) Stosowany w łacińskiej części Europy do końca Średniowiecza Niewygodny w prowadzeniu nawet prostych działań arytmetycznych, brak ułamków

Rok akademicki 2011/2012, Wykład nr 2 15/50 Przykład systemu niepozycyjnego - system rzymski Zasady tworzenia liczb: zestawiamy odpowiednie znaki od oznaczającego liczbę największą do oznaczającego liczbę najmniejszą XVI = 10(X) + 5(V) + 1(I) = 16 jeżeli składnik liczby, którą piszemy, jest wielokrotnością liczby nominalnej, wtedy zapisywany jest z użyciem kilku następujących po sobie znaków CCC = 100(C) + 100(C) + 100(C) = 300 dodatkowo należy zachować zasadę nie pisania czterech tych samych znaków po sobie, lecz napisać jeden znak wraz ze znakiem oznaczającym wartość większą o jeden rząd liczbowy CD = 500(D) - 100(C) = 400

Rok akademicki 2011/2012, Wykład nr 2 16/50 Przykład systemu niepozycyjnego - system rzymski Zasady odczytu liczb: cyfry jednakowe są dodawane MMM = 1000(M) + 1000(M) + 1000(M) = 3000 cyfry mniejsze stojące przed większymi są odejmowane od nich CDXCIV = 500(D) - 100(C) + 100(C) - 10(X) + 5(V) - 1(I) = 494 cyfry mniejsze stojące za większymi są do nich dodawane MDCLX = 1000(M) + 500(D) + 100(C) + 50(L) + 10 (X) = 1660

Rok akademicki 2011/2012, Wykład nr 2 17/50 Kodowanie Informacje przetwarzane przez komputer to liczby, ale także inne obiekty, np. litery, wartości logiczne, obrazy, itp. Każda informacja przetwarzana przez komputer musi być reprezentowana za pomocą tylko dwóch stanów: wysokiego (1 - jedynka) 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

Rok akademicki 2011/2012, Wykład nr 2 18/50 Kodowanie

Rok akademicki 2011/2012, Wykład nr 2 19/50 Kody liczbowe - Naturalny Kod Binarny (NKB) Jeżeli dowolnej liczbie dziesiętnej przypiszemy odpowiadającą jej liczbę binarną, to otrzymamy naturalny kod binarny (NKB)

Rok akademicki 2011/2012, Wykład nr 2 20/50 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 Największe liczby dwójkowe: 1 bit 2 bity 3 bity L 8 bitów 10 bitów 16 bitów 32 bity 1 (2) 11 (2) 111 (2) 11111111 (2) 1111111111 (2) 11111111 11111111 (2) 11111111K 11111111 (2) = = = = = = = 2 2 2 2 2 2 2 1 2 3 8 10 16 32 1 1 1 1 1 1 1 = = = = = = = 1 3 7 (10) (10) 65 (10) 255 (10) 1 023 (10) 535 (10) 4 294 967 295 (10)

Rok akademicki 2011/2012, Wykład nr 2 21/50 Kody liczbowe - Kod BCD 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) W ogólnym przypadku kodowane są tylko znaki 0 9 Pozostałe kombinacje bitowe mogą być stosowane do kodowania znaku liczby lub innych znaczników

Rok akademicki 2011/2012, Wykład nr 2 22/50 Kody liczbowe - Kod BCD Przykład: 168 =? (10) (BCD) 1 } } 6 } 8 0001 0110 1000 168 ( 10) = 000101101000 (BCD) 1001 0101 1001 { 0101 { 0011 { 9 5 0011 3 (BCD) =? 100101010011 11 ( = 953 BCD) (10) (10) Zastosowania: urządzenia elektroniczne z wyświetlaczem cyfrowym (np. kalkulatory, mierniki cyfrowe) przechowywania daty i czasu w BIOSie komputerów (także wczesne modele PlayStation 3) zapis części ułamkowych kwot (systemy bankowe)

Rok akademicki 2011/2012, Wykład nr 2 23/50 Kody liczbowe - Kod BCD: przechowywanie liczb 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 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 (-), np. 127 127 (10) (10) = 0001 = 0001 0010 0010 0111 0111 1100 1101 (127C (127D (16) (16) ) )

Rok akademicki 2011/2012, Wykład nr 2 24/50 Kody liczbowe - Kod BCD Zalety BCD w stosunku do NKB: prostsze obliczenia i zaokrąglanie liczb (podstawa systemu: 10) prostsza konwersja do postaci dogodnej do wyświetlenia (wyświetlacz 7-segmentowy), konwersja wykonywana w czasie liniowym niektóre wartości niecałkowite (np. 0,1) mają w BCD skończoną reprezentację, dzięki czemu BCD wprowadza mniejsze błędy obliczeń Wady BCD w stosunku do NKB: skomplikowane operacje arytmetyczne (dodawanie, mnożenie) 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ż w NKB

Rok akademicki 2011/2012, Wykład nr 2 25/50 Kody liczbowe - Kod BCD Na poprzednich slajdach przedstawiono podstawową postać kodu BCD - BCD 8421 lub SBCD (Simple Binary - Coded Decimal) Istnieją inne warianty kodu BCD, w których poszczególne cyfry są kodowane w inny sposób

Rok akademicki 2011/2012, Wykład nr 2 26/50 Kody liczbowe - Kod 1 z N (pierścieniowy) Najbardziej rozpowszechniony jest kod 1 z 10 Kod wagowy (9,8,7,6,5,4,3,2,1,0) Kod detekcyjny w czasie wykonywania operacji można kontrolować liczbę jedynek wykrycie braku jedynki lub wykrycie dwóch lub więcej jedynek wskazuje na błąd

Rok akademicki 2011/2012, Wykład nr 2 27/50 Kody liczbowe - Kod 2 z 5 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, np. 01236, 01234, 74210 Kod detekcyjny Stosowany przede wszystkim w kodach kreskowych

Rok akademicki 2011/2012, Wykład nr 2 28/50 Kody liczbowe - Kod 2 z 5 Industrial (1960 r.) Jednowymiarowy kod kreskowy kodujący cyfry: 0 9 Każdy znak składa się z 5 pasków (2 szerokich i 3 wąskich), odstępy pełnią rolę separatorów Szeroki pasek jest wielokrotnością wąskiego, szerokości muszą być takie same dla całego kodu Struktura kodu: start: 11011010 numer stop: 11010110 Może zawierać sumę kontrolną

Rok akademicki 2011/2012, Wykład nr 2 29/50 Kody liczbowe - Kod kołowy 5-bitowy kod kołowy nazywany jest kodem Johnsona Począwszy od najmniej znaczącego bitu zwiększa się liczba stanów 1 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

Rok akademicki 2011/2012, Wykład nr 2 30/50 Kody liczbowe - Kod Graya (refleksyjny) Kod dwójkowy, bezwagowy, niepozycyjny Dwa kolejne słowa kodowe różnią się stanem jednego bitu Kod cykliczny - ostatni i pierwszy wyraz również różnią się stanem jednego bitu Konstrukcja n-bitowego kodu: dopisz do (n-1)-bitowego kodu 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 2011/2012, Wykład nr 2 31/50 Kody liczbowe - Kod Graya Stosowany w przetwornikach analogowo-cyfrowych, do cyfrowego pomiaru analogowych wielkości mechanicznych (przesuw liniowy, kąt obrotu) http://tams-www.informatik.uni-hamburg.de /applets/hades/webdemos/10-gates/15-graycode/dual2gray.html

Rok akademicki 2011/2012, Wykład nr 2 32/50 Kod ASCII ASCII - American Standard Code for Information Interchange 7-bitowy kod przypisujący liczby z zakresu 0-127: - literom (alfabet angielski) - cyfrom - znakom przestankowym - innym symbolom - poleceniom sterującym kody 0-31, 127-33 kody sterujące służące do sterowania urządzeniami typu drukarka czy terminal kody 32-126 - 95 kodów tworzących zbiór znaków ASCII

Rok akademicki 2011/2012, Wykład nr 2 33/50 Kod ASCII - Kody sterujące Kody sterujące - 33 kody, o numerach: 0-31, 127

Rok akademicki 2011/2012, Wykład nr 2 34/50 Kod ASCII - Kody sterujące a język C 0 (10) = 0 (16) NUL - koniec łańcucha znaków, zapis: \0 7 (10) = 7 (16) BEL - alarm, dźwięk głośniczka, zapis: \a 8 (10) = 8 (16) BS - klawisz Backspace, zapis: \b 9 (10) = 9 (16) TAB - tabulacja (odstęp), zapis: \t 10 (10) = A (16) LF - przejście do nowego wiersza, zapis: \n 13 (10) = D (16) CR - powrót na początek wiersza, zapis: \r 27 (10) = 1B (16) ESC - klawisz Escape 127 (10) = 7F (16) DEL - klawisz Delete

Rok akademicki 2011/2012, Wykład nr 2 35/50 Kod ASCII - Pliki tekstowe Elementami pliku tekstowego są wiersze, mogą one mieć różną długość W systemie Windows każdy wiersz pliku zakończony jest parą znaków: CR, ang. carriage return - powrót karetki, kod ASCII - 13 (10) = 0D (16) LF, ang. line feed - przesunięcie o wiersz, kod ASCII - 10 (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) znaki odpowiadające bajtom pliku (traktując bajty jako kody ASCII)

Rok akademicki 2011/2012, Wykład nr 2 36/50 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 #include <stdio.h> int main() { printf("\\n --> %d %X\n",'\n','\n'); printf("\\r --> %d %X\n",'\r','\r'); \n --> 10 A \r --> 13 D } return 0; Przy zapisywaniu łańcucha znaków do pliku tekstowego mamy sytuację odwrotną - znak LF zastępowany jest parą CR i LF

Rok akademicki 2011/2012, Wykład nr 2 37/50 Kod ASCII - Pliki tekstowe W systemie Linux znakiem końca wiersza jest tylko LF o kodzie ASCII - 10 (10) = 0A (16) Załóżmy, że plik tekstowy ma postać: Rzeczywista zawartość pliku jest następująca: Podczas przesyłania pliku tekstowego (np. przez protokół ftp) z systemu Linux do systemu 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 2011/2012, Wykład nr 2 38/50 ISO/IEC 646 ISO/IEC 646 - norma definiująca modyfikację 7-bitowego kodowania ASCII, stosowana w latach 70-tych i 80-tych W normie określono 10 pozycji na 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 10 20 30 40 50 60 70 Znaki kontrolne SP! " # $ % & ( ) * +, -. / 0 1 2 3 4 5 6 7 8 9 : ; < = >? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o 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

Rok akademicki 2011/2012, Wykład nr 2 39/50 ISO/IEC 646 - odmiany narodowe Norma: BN-74/3101-01

Rok akademicki 2011/2012, Wykład nr 2 40/50 ISO/IEC 8859 ISO/IEC 8859 - zestaw standardów służących do kodowania znaków za pomocą 8-bitów Wszystkie zestawy ISO 8859 mają znaki 0 (10) -127 (10) (00 (16) -7F (16) ) takie same jak w kodzie ASCII Pozycjom 128 (10) -159 (10) (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, wstrzymane zostały prace związane z ISO 8859, a skoncentrowano się na standardzie Unicode

Rok akademicki 2011/2012, Wykład nr 2 41/50 ISO/IEC 8859 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) - zawiera polskie znaki ISO 8859-15 (Latin-9) ISO 8859-16 (Latin-10) - łaciński dla Europy środkowej, zawiera polskie znaki

Rok akademicki 2011/2012, Wykład nr 2 42/50 ISO/IEC 8859-1 ISO/IEC 8859-1, Latin-1 ( 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 191 znaków łacińskiego pisma SP - spacja NBSP - twarda spacja SHY - miękki dywiz (myślnik)

Rok akademicki 2011/2012, Wykład nr 2 43/50 ISO/IEC 8859-2 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 191 znaków łacińskiego pisma kody z przedziałów 00 (16) -1F (16) oraz 7F (16) -9F (16) nie są używane w ISO-8859-2 kodowanie zgodne z Polską Normą SP - spacja NBSP - twarda spacja SHY - miękki dywiz (myślnik)

Rok akademicki 2011/2012, Wykład nr 2 44/50 ISO/IEC 8859-2 - Kodowanie polskich znaków 18 znaków: Ą - ą Ć - ć Ę - ę Ł - ł Ń - ń Ó - ó Ś - ś Ź - ź Ż - ż

Rok akademicki 2011/2012, Wykład nr 2 45/50 ISO/IEC 8859-1 i ISO/IEC 8859-2 - porównanie

Rok akademicki 2011/2012, Wykład nr 2 46/50 EBCDIC EBCDIC - Extended Binary Coded Decimal Interchange Code 8-bitowe kodowanie znaków stworzone jako rozszerzenie kodowania BCD używane głównie w systemach IBM w latach 60-tych XX wieku umożliwia zapisanie do 256 różnych symboli brak zachowania kolejności liter zgodnie z kolejnością kodów, np. po R nie ma S kody EBCDIC nie są zgodne z ASCII

Rok akademicki 2011/2012, Wykład nr 2 47/50 EBCDIC i ISO 8859-1 - porównanie

Rok akademicki 2011/2012, Wykład nr 2 48/50 Windows-1250 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 2011/2012, Wykład nr 2 49/50 ISO 8859-2 i Windows-1250 - porównanie

Rok akademicki 2011/2012, Wykład nr 2 50/50 Koniec wykładu nr 2 Dziękuję za uwagę!