Materiały laboratoryjne. Kodowanie i liczby. dr inż. Zbigniew Zakrzewski. Z.Z. Podstawy informatyki

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

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

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

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

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

Techniki multimedialne

Podstawy Informatyki

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

Architektura komputerów

Pracownia Komputerowa wykład VI

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

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

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

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

Stan wysoki (H) i stan niski (L)

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

Systemy zapisu liczb.

Naturalny kod binarny (NKB)

Technologie Informacyjne

Arytmetyka binarna - wykład 6

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

Kodowanie informacji. Kody liczbowe

Cyfrowy zapis informacji

1.1. Pozycyjne systemy liczbowe

Teoretyczne Podstawy Informatyki

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

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

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

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

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Architektura komputerów

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

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

Pracownia Komputerowa wyk ad VI

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

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

Kodowanie liczb całkowitych w systemach komputerowych

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

Metoda znak-moduł (ZM)

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

Podstawy Informatyki dla Nauczyciela

PODSTAWY INFORMATYKI. Informatyka? - definicja

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

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

Pozycyjny system liczbowy

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

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

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

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

Arytmetyka komputera

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

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

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

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

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

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

Podstawy informatyki. Reprezentacja danych w systemach cyfrowych

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Wstęp do informatyki- wykład 1 Systemy liczbowe

LICZBY ZMIENNOPRZECINKOWE

Teoretyczne podstawy informatyki

Architektura komputerów

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

Systemy liczbowe używane w technice komputerowej

L6.1 Systemy liczenia stosowane w informatyce

Pracownia Komputerowa wykład V

Pracownia Komputerowa wykład IV

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

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Kod U2 Opracował: Andrzej Nowak

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

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

SYSTEMY LICZBOWE 275,538 =

System Liczbowe. Szesnastkowy ( heksadecymalny)

Technologie Informacyjne Wykład 4

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych

Podstawy Informatyki

Pracownia Komputerowa wyk ad IV

Cel wykładu. Cel wykładu. Cel wykładu, cd. Cel wykładu, cd. Cel wykładu, cd. Z. Postawa, "Podstawy Informatyki II" Strona: 1 z 6

ARCHITEKTURA SYSTEMÓW MIKROPROCESOROWYCH. dr inż. Małgorzata Langer B9, pok. 310 Instytut Elektroniki

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

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

Systemy liczbowe. 1. System liczbowy dziesiętny

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Technika Cyfrowa i Mikroprocesorowa

1259 (10) = 1 * * * * 100 = 1 * * * *1

Kodowanie informacji. Przygotował: Ryszard Kijanka

DZIESIĘTNY SYSTEM LICZBOWY

Wstęp do Informatyki

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej :

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

Systemy liczbowe. Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz

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

Zapis liczb binarnych ze znakiem

Podstawy Automatyki. Wykład 9 - Podstawy matematyczne automatyki procesów dyskretnych. dr inż. Jakub Możaryn. Instytut Automatyki i Robotyki

Technika cyfrowa Wprowadzenie

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

Transkrypt:

Materiały laboratoryjne Podstawy informatyki dr inż. Zbigniew Zakrzewski Z.Z. Podstawy informatyki 1 v.1.2

Systemy zapisu liczb a ogół operujemy systemami pozycyjnymi, np. rzymski, dziesiętny. System pozycyjny oznacza, że wartość zapisywanego znaku zależy od jego miejsca, położenia rzymski = system pozycyjny sekwencyjny dziesiętny = system pozycyjny wagowy gdzie: m, n ; m n; 2; a {0,...,-1} n L ai im i nazywamy podstawą systemu, zaś a jest elementem zbioru cyfr dostępnych w danym systemie systemie dziesiętnym: = 10, a {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Z.Z. Podstawy informatyki 2

System dwójkowy System dwójkowy jest naturalnym systemem informatyki. Jak zapisujemy informację? Za pomocą zjawisk elektrycznych, magnetycznych, świetlnych Zamiast skomplikowanych pomiarów które by pozwoliły zapisać 10 cyfr mamy proste i jednoznaczne kodowanie. Materiał półprzewodnikowy: gdy przyłożymy napięcie w jednym kierunku przewodzi prąd (prawie idealnie), a w kierunku przeciwnym nie przewodzi prądu. Mamy wiec dwa stany Podobnie jest w magnetyzmie: substancje magnetyczne można namagnesować w dwóch kierunkach adę systemy dwójkowego stanowi długość liczby, np. (0010001110100101) 2 = 2 13 + 2 9 + 2 8 + 2 7 + 2 5 + 2 2 + 2 0 = (9125) 10 Z.Z. Podstawy informatyki 3

Uwaga! ie jest zgodne z układem SI Bity a Bajty Przyjęło się stosowanie jednostki liczącej 8 bitów, nazwanej bajtem Bajt to podstawowa komputerowa jednostka (porcja) informacji Dzisiaj mamy kilobajty, megabajty, gigabajty, terabajty,... azwa Liczba bajtów [B] Potoczne rozumienie Kilobajt 2 10 = 1 024 10 3 (tysiąc) Megabajt 2 20 = 1 048 576 10 6 (milion) Gigabajt 2 30 = 1 073 741 824 10 9 (miliard) Terabajt 2 40 = 11 099 511 627 776 10 12 (bilion) Jeden bajt może reprezentować 256 różnych wartości, które mogą oznaczać zapisywane wiadomości (zgodnie z regułą Hartleya) Z.Z. Podstawy informatyki 4

Kodowanie informacji Jak to się dzieje, że w pamięci komputera można przechowywać teksty, obrazy, dźwięki i liczby znacznie różniące się od zestawu 0 256? Dzięki kodowaniu informacji! Bez kodowania nie ma zapisu różnorodnych informacji w pamięci komputera. Kodowanie występuje w każdym programie i na każdym poziomie. Kodowanie multimediów (zamiana na informację) nazywamy kodowaniem źródłowym Z.Z. Podstawy informatyki 5

Kodowanie liczb i znaków Liczby całkowite 89 Liczby binarne 1011001 Liczby dziesiętne 12,3 Liczby binarne?????? Znaki alfanumeryczne CB Liczby binarne?????? Jak przechowywać informacje o liczbach ułamkowych oraz różnorodnych znakach (literach, np. chińskich)? Z.Z. Podstawy informatyki 6

Komunikacyjny model Shannona Kanał Shannona a prawo wartości informacji Hartleya: H =M artość informacji wg Hartleya liczba stanów H = log = 2 1024 10 M liczba wiadomości Szum addytywny Źródło informacji adajnik Kanał Odbiornik Punkt przeznaczenia adana wiadomość adany sygnał Odebrany sygnał Odebrana wiadomość Z.Z. Podstawy informatyki 7

Kodowanie w systemie naturalnym KD Formuła naturalnego (pozycyjnego) kodu dziesiętnego: (arabskiego) 2578 10 artość 3 2 1 0 L A 210 510 710 810 Znaki alfabetu agi systemu L A a 8, a 7, a 5, a 2 0 1 2 3 3 i0 a i 10 i a 0,1,, p 1, gdzie p 10 i a i 0,1,2,,9 Ogólny zapis Z.Z. Podstawy informatyki 8

Zapis liczb nieujemnych w kodzie KD Formuły wiążące słowo kodowe z liczbami nieujemnymi: 1. ieujemna liczba całkowita L 0: A a, 0 1 n1 ai a1a0 ai p Słowo kodowe Długość słowa n1 n1 n2 1 0 i n1 n2 1 0 i i0 L A a p a p a p a p a p 2. ieujemna liczba ułamkowa 0 L < 1: A a 1a2 a j am 1 am, 0 a j p 1 Podstawa kodu Długość słowa 1 1 2 m1 m j 1 2 m1 m j jm L A a p a p a p a p a p Z.Z. Podstawy informatyki 9

Zapis liczb nieujemnych w kodzie KD c.d 3. ieujemna liczba rzeczywista L 0 : A a a a a a a a n1 n2 1 0 1 2 m L A n1 km a p k k Maksymalna wartość liczby całkowitej Maksymalna wartość liczby ułamkowej L n max p 1 Lmax 1 p n Przykład: Przykład: L 10 1 max 4 9999 L 4 1 10 max 0.9999 Z.Z. Podstawy informatyki 10

Kodowanie w systemie naturalnym KB Formuła naturalnego (pozycyjnego) kodu dwójkowego: 1011 2 artość 3 2 1 0 LB 1 2 0 2 1 2 1 2 Znaki alfabetu agi systemu L B b 1, b 1, b 0, b 1 0 1 2 3 3 i0 b i 2 i b 0, p 1, gdzie p 2 i b i 0,1 Ogólny zapis Z.Z. Podstawy informatyki 11

Liczba naturalna w kodzie dwójkowym Słowo n-bitowe: X = x n-1... x 1 x 0 Słowo 8 bitowe: 10010011 Takie słowo reprezentuje liczbę z przedziału od 0 do 2 n -1 Czyli dla n = 8 Czyli dla n = 16 Czyli dla n = 24 Czyli dla n = 64 0 255 na jednym bajcie 0 65535 na dwóch bajtach 0 16777216 na trzech bajtach 0 1.8447x10 19 na ośmiu bajtach Z.Z. Podstawy informatyki 12

Zapis liczb nieujemnych w kodzie KB Formuły wiążące słowo kodowe z liczbami nieujemnymi: 1. ieujemna liczba całkowita L 0: B b, 0,1 n1bn 2 bi b1b 0 bi Słowo kodowe Długość słowa n1 n1 n2 1 0 i n12 n22 12 02 i 2 i0 L B b b b b b 2. ieujemna liczba ułamkowa 0 L < 1: B b 1b 2 bj b m1 b m, bj 0,1 1 1 2 m1 m j 12 2 2 m12 m2 j 2 jm L B b b b b b Długość słowa Z.Z. Podstawy informatyki 13

Zapis liczb nieujemnych w kodzie KB c.d 3. ieujemna liczba rzeczywista L 0 : B b b b b b b b n1 n2 1 0 1 2 m L B n1 km b k 2 k Maksymalna wartość liczby całkowitej Maksymalna wartość liczby ułamkowej n Lmax 2 1 Lmax 12 n Przykład: 4 Lmax 2 1 15 Przykład: 4 L max 1 2 0.9375 Reprezentacja dziesiętna Z.Z. Podstawy informatyki 14

Kody wspomagające kod KB Powody wprowadzenia kodów wspomagających: 1. Zbyt długie łańcuchy symboli KB w ręcznym przetwarzaniu przez człowieka. 2. Możliwość popełnienia błędu w ręcznym zapisie KB. Kody wspomagające - p r 2, gdzie r 1 Kod ósemkowy (OCT) r = 3 Kod szesnastkowy (HEX) r = 4 przypadku kodów o większej liczbie symboli niż 10, stosuje się oznaczenia literowe od A do litery dopełniającej zakres (w przypadku kodu szesnastkowego do litery F ). Z.Z. Podstawy informatyki 15

Reprezentacja liczb w kodach naturalnych Tabela z wybranymi liczbami: KD KB OCT HEX 0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 14 1110 16 E 15 1111 17 F Z.Z. Podstawy informatyki 16

Konwersja kodów (dziesiętny dowolny) całkowite Metodyka konwertowania dziesiętnych liczb całkowitych: L dziesiętna liczba całkowita, B liczba równoważna dziesiętnej o podstawie p. Metoda iteracyjnego dzielenia przez podstawę p. L b0 a 0, gdzie: a - liczba całkowita, b 0 p 1 - reszta p p a0 b1 a1 b2 an 1 bn a1, a2,, 0 p p p p p p Uniwersalny konwerter (KD dowolny): p 2 System B b b b b n n1 1 0 p 1024 10000000000 10 2 Z.Z. Podstawy informatyki 17

Konwersja kodów (dziesiętny dwójkowy) całkowite Przykład konwersji KD na KB (dla liczb całkowitych): 61 10 61 1 2 2 30 15 0, 0, 2 1 2 30, b0 1, b1 3 15 1 7, b2 1, 2 2 4 7 1 3, b3 1, 2 2 3 1 2 2 1 1 0, 1, 2 2 5 6 1, b4 1, b5 ynik: 61 10 = 111101 2 Z.Z. Podstawy informatyki 18

ielkości liczbowe Liczby naturalne: Jeden bajt 0, 1,..., 255 Dwa bajty...,2 16 1 ( czyli około 6*10 4 ) Cztery bajty...,2 32 1 ( czyli około 4*10 9 ) Liczby ujemne: kodowanie w systemie znak-moduł Umawiamy się, że jeden bit z liczby oznacza jej znak (np. ósmy bit) Dla jednego bajta otrzymamy liczby (-127, 127) Ten zakres można rozszerzyć używając dwa bajty, cztery bajty, itd... + 0 = 00000000 Problem: niejednoznaczność definicji zera - 0 = 10000000 Z.Z. Podstawy informatyki 19

Liczby ujemne Kodowanie w systemie znak-moduł Bit 7 6 5 4 3 2 1 0 Znaczenie znak 64 32 16 8 4 2 1 Kodowanie w systemie uzupełnieniowym Bit 7 6 5 4 3 2 1 0 Znaczenie -128 64 32 16 8 4 2 1 Jeżeli kolejnym bitom przypiszemy wartości jak w tabeli to otrzymamy liczby z zakresu ( 128,127). ie ma podwójnej reprezentacji zera, ale przedział jest niesymetryczny. Ta asymetria jest wpisana w metodę, ponieważ w bajcie możemy zakodować 256 wartości. Odliczając ciąg znaków oznaczających zero zostaje nam różnych 255 wartości. Z.Z. Podstawy informatyki 20

Liczby całkowite Liczby całkowite: kodowanie w systemie uzupełnieniowym szystkie otrzymane wartości są dokładne; Istnieje górne i dolne ograniczenie zakresu wartości liczb; Ograniczenia te zależą od tego, ile bajtów przeznaczymy na liczbę oraz od systemu kodowania znaku; Przy takim zapisie umawiamy się, że przecinek leży za prawym skrajnym znakiem Ten system kodowania nazywamy też systemem stałoprzecinkowym Otrzymujemy dla niego zawsze dokładne wartości Z.Z. Podstawy informatyki 21

Konwersja kodów (dziesiętny dowolny) ułamkowe Metodyka konwertowania dziesiętnych liczb ułamkowych: L dziesiętna liczba ułamkowa, B liczba równoważna dziesiętnej o podstawie p. Metoda iteracyjnego mnożenia przez podstawę p. L p b d, gdzie: d - nowy ułamek, b p 1 - liczba całkowita 1 1 1 1 d1 p b 2 d2, d2 p b 3 d3,, dm 1p b m dm B b b b 0. 1 2 m p Koniec obliczeń dla d m = 0 Z.Z. Podstawy informatyki 22

Konwersja kodów (dziesiętny dwójkowy) ułamkowe Przykład konwersji KD na KB (dla liczb ułamkowych): 0.21 10 1 0.21 2 0 0.42, b 1 0, 2 3 4 5 6 I tak dalej... 0.42 2 0 0.84, 0, b 2 0.84 2 1 0.68, 1, b 3 0.68 2 1 0.36, 1, b 4 0.26 2 0 0.72, 0, b 5 0.72 2 1 0.44, 1, b 6 Stąd 0.21 10 = (0.001101...) 2 Z.Z. Podstawy informatyki 23

Konwersja kodów (dwójkowy dziesiętny) całkowite Metodyka konwertowania liczb całkowitych KB na KD: 1011 2 3 2 1 0 1 2 0 2 1 2 1 2 L B 8 0 2 1 11 11010 2 4 3 2 1 0 L B 12 12 02 12 02 16 8 0 2 0 26 Przykład 1: Przykład 2: Konwerter KB KD: 111111111111 2 4095 10 Z.Z. Podstawy informatyki 24

Konwersja kodów (dwójkowy HEX) całkowite Metodyka konwertowania liczb całkowitych KB na HEX: 1110 0101 1101 0111 2 Przykład 1: Tetrady liczby szesnastkowej L B 1110 0101 1101 0111 KB 14 5 13 7 KD E 5 D 7 HEX Konwerter KB HEX: ynik: 1110010111010111 2 = E5D7 16 1110010111010111 2 E5D7 16 Z.Z. Podstawy informatyki 25

Uzupełnienia liczb Każda liczba zapisana w kodzie naturalnym może być przedstawiona w odpowiednim kodzie uzupełnieniowym. Dla każdego naturalnego kodu liczbowego o podstawie p istnieją dwa rodzaje uzupełnień: a) uzupełnienie do podstawy p, oznaczane symbolem Up, b) uzupełnienie do zmniejszonej podstawy p-1, oznaczane symbolem U(p-1). Dla liczb o podstawie p = 10 i p = 2 otrzymuje się odpowiednio uzupełnienia: U10, U9 i U2, U1. Z.Z. Podstawy informatyki 26

Uzupełnienie U(p-1) w teorii Formuła na uzupełnienie do zmniejszonej podstawy: n m U p 1 L p p L L liczba nieujemna, p podstawa liczby, n 0 długość części całkowitej liczby, m 0 długość części ułamkowej liczby. Praktyczna reguła: Uzupełnienie U(p-1) liczby nieujemnej otrzymuje się przez odjęcie każdej cyfry tej liczby od (p-1) Z.Z. Podstawy informatyki 27

Uzupełnienie U(p-1) w praktyce Przykłady dla liczb dziesiętnych oraz dwójkowych: Dziesiętne: U9 347 652 U9 67.324 32.675 U9 0 9 U9 0.0 9.9 Dwójkowe: U1 101101 010010 U1 01.1011 10.0100 U1 0 1 U1 0.0 1.1 przypadku liczb dwójkowych operacja uzupełnienia do 1 nosi nazwę dopełnienia i oznacza zastąpienie każdej jedynki przez zero i odwrotnie, czyli negację wszystkich bitów danej liczby. Z.Z. Podstawy informatyki 28

Formuła na uzupełnienie do podstawy: L liczba nieujemna, p podstawa liczby, Uzupełnienie Up w teorii n Up L p L dla L 0 Up 0 0 n 0 długość części całkowitej liczby. Praktyczna reguła nr 1: Uzupełnienie Up liczby nieujemnej otrzymuje się przez dodanie jedynki na najmniej znaczącej pozycji jej uzupełnienia U(p-1). Praktyczna reguła nr 2: Uzupełnienie Up liczby nieujemnej otrzymuje się przez pozostawienie wszystkich mniej znaczących zer bez zmiany, odjęcie pierwszej niezerowej najmniej znaczącej cyfry od podstawy p, a następnie odjęcie pozostałych bardziej znaczących cyfr od zmniejszonej podstawy (p-1) Z.Z. Podstawy informatyki 29

Uzupełnienie Up w praktyce Przykłady dla liczb dziesiętnych oraz dwójkowych: Dziesiętne: 4 n n 2 n U10 3470 6530 10 3470 4 U10 0.3947 0.6053 1 0.3947 0 U10 32.194 67.806 10 32.194 2 U10 0 0 Dwójkowe: U2 101100 010100 U2 01.1010 10.0110 U 2 0 0 U 2 0.0 0.0 przypadku liczb dwójkowych (p = 2) uzupełnienia do 2 można otrzymać pozostawiając wszystkie mniej znaczące zera i pierwszą najmniej znaczącą jedynkę niezmienione, a następnie negując pozostałe bity. Z.Z. Podstawy informatyki 30

Zapis liczb dwójkowych ze znakiem dwójkowym systemie liczbowym znaki + oraz - są wprowadzane w postaci odrębnego bitu znaku, gdzie : 1 - reprezentuje umownie znak -, 0 odpowiada znakowi +. Stosuje się trzy zasadnicze sposoby kodowania liczb dwójkowych ze znakiem: 1. Znak-Moduł (ZM). 2. Znak-Uzupełnienie do 1 (ZU1). 3. Znak-Uzupełnienie do 2 (ZU2). Kody te stosuje się do liczb całkowitych i ułamkowych, czyli ogólnie biorąc liczb rzeczywistych. Z.Z. Podstawy informatyki 31

Liczba ze znakiem w kodzie ZM kodzie ZM liczby dodatnie i ujemne o tych samych wartościach bezwzględnych różnią się tylko bitem znaku. Całkowite: 1210 0.11002 12 1.1100 10 2 Ułamkowe: 0.7510 0.11002 0.75 1.1100 10 2 praktyce układowej kropka jest pomijana, gdyż zwykle przyjmuje się, że dany zapis reprezentuje albo liczbę całkowitą albo liczbę ułamkową. Z.Z. Podstawy informatyki 32

Liczba ze znakiem w kodzie ZU1 kodzie ZU1 reprezentacja: liczby dodatniej jest taka sama jak w kodzie ZM, liczby ujemnej jako bit znaku równy 1 oraz uzupełnienie jej modułu do 1. Całkowite: 1210 0.11002 12 1.0011 10 2 Ułamkowe: 0.7510 0.11002 0.75 1.0011 10 2 Kody ZM i ZU1 wprowadzają pewną anomalię dwie różne liczby reprezentują zero. Te dwa zera określa się umownie jako dodatnie i ujemne zero. Z.Z. Podstawy informatyki 33

Liczba ze znakiem w kodzie ZU2 kodzie ZU2 reprezentacja: liczby dodatniej jest taka sama jak w kodzie ZM oraz ZU1, liczby ujemnej jako bit znaku równy 1 oraz uzupełnienie jej modułu do 2. Całkowite: 1210 0.11002 12 1.0100 10 2 Ułamkowe: 0.7510 0.11002 0.75 1.0100 10 2 przypadku kodu ZU2 zero jest zapisane jednoznacznie bez względu na ustawienia bitu znaku. Z.Z. Podstawy informatyki 34

Uzupełnienie U2 do podstawy (kod ZU2) Liczby całkowite ze znakiem: Przykłady liczb z przedziału od -2 n-1 do 2 n-1-1: Dla n = 8 Dla n = 16-128 do 127 na jednym bajcie -32768 do 32767 na dwóch bajtach n2 n1 i 2 n1 2 i0 K L x x x n wartość n-tego pola w zapisie binarnym i Liczba ujemna = Zanegowana liczba dodatnia + 1 L L1 Z.Z. Podstawy informatyki 35

Uzupełnienie U2 (kod ZU2) - przykład Słowo 8-bitowe (kodowanie ZU2): -2 10 a) Liczba 2 binarnie: 00000010 b) Zanegowana liczba 2 binarnie: 11111101 c) Zanegowana liczba 2 binarnie +1: 11111110 Słowo 8-bitowe (dekodowanie ZU2): n1 2 n2 i n1 2 i 8 i0 K L x x n 11111110-128 + 64 + 32 + 16 + 8 + 4 + 2 + 0 = -2 Z.Z. Podstawy informatyki 36

Przykłady liczb ze znakiem w kodach Tabela z czterobitowymi liczbami ze znakiem w kodach: Liczba dziesiętna (w nawiasach ułamkowa) Liczba dwójkowa ZM ZU1 ZU2-8 (-1) 1.000-7 (-0.875) 1.111 1.000 1.001-6 (-0.75) 1.110 1.001 1.010-5 (-0.625) 1.101 1.010 1.011-4 (-0.5) 1.100 1.011 1.100-3 (-0.375) 1.011 1.100 1.101-2 (-0.25) 1.010 1.101 1.110-1 (-0.125) 1.001 1.110 1.111-0 1.000 1.111 0 0.000 +0 0.000 0.000 1 (0.125) 0.001 0.001 0.001 2 (0.25) 0.010 0.010 0.010 3 (0.375) 0.011 0.011 0.011 4 (0.5) 0.100 0.100 0.100 5 (0.625) 0.101 0.101 0.101 Z.Z. Podstawy informatyki 37

Kody dwójkowo-dziesiętne BCD w teorii Cechy kodu BCD (Binary-Coded-Decimal): 1. Każda cyfra dziesiętna jest oddzielnie kodowana dwójkowo w postaci odpowiedniego słowa. 2. Cała liczba dziesiętna jest kodowana dwójkowo przez złożenie słów dwójkowych, reprezentujących wszystkie cyfry tej liczby. 3. Do zapisu cyfr potrzebne są co najmniej 4-bitowe słowa. 4. szystkie kody BCD są kodami nadmiarowymi (2 4 = 16). 5. Możliwości kombinacyjne 4-bitowych słów kodowych jako kodów BCD: 10! m! 16!/ 6! 2.9 10 Z.Z. Podstawy informatyki 38

Kody BCD w praktyce Przykład kodowania w kodzie 8421 : 6283 10 6 2 8 3 0110 0010 1000 0011 ynik Przykład kodowania w kodzie 2421 : 6283 10 6 2 8 3 1100 0010 1110 0011 Praktyczna reguła: Pierwsze 5 cyfr kodowane jak w 8421, pozostałe 5 zanegowane odpowiedniki dopełnień do 9. ynik Kody samouzupełniające uzupełnienie do 1 liczb dwójkowych daje uzupełnienie do 9 odpowiednich liczb dziesiętnych. Z.Z. Podstawy informatyki 39

Zestawienie kodów BCD Tabela z wykazem kodów dwójkowo-dziesiętnych BCD: KD 8421 2421 (Aikena) XS3 XS3 - Graya 1 z 10 7- segmentowy 0 0000 0000 0011 0010 0000000001 1111110 1 0001 0001 0100 0110 0000000010 0110000 2 0010 0010 0101 0111 0000000100 1101101 3 0011 0011 0110 0101 0000001000 1111001 4 0100 0100 0111 0100 0000010000 0110011 5 0101 1011 1000 1100 0000100000 1011011 6 0110 1100 1001 1101 0001000000 1011111 7 0111 1101 1010 1111 0010000000 1110010 8 1000 1110 1011 1110 0100000000 1111111 9 1001 1111 1100 1010 1000000000 1111011 Z.Z. Podstawy informatyki 40

Reprezentacja stałoprzecinkowa ady reprezentacji stałoprzecinkowej (Fixed Point otation): A 47567.31 B 0.000075244 10-cyfrowy format: XXXXX.XXXXX A 47567.31000 B 0.00007 5244 obcięte 00000.00007 przypadku liczb stałoprzecinkowych wystąpi duży błąd przy bardzo małych wartościach oraz bardzo dużych wartościach (w odniesieniu do powyższego formatu). Z.Z. Podstawy informatyki 41

Liczby rzeczywiste Charakterystyka: Liczby rzeczywiste mają cześć całkowitą i ułamkową ie można już przyjąć, że przecinek leży po prawej stronie (bo wtedy byśmy mieli tylko liczby całkowite) ani, że leży po lewej stronie (bo wtedy byśmy mieli tylko liczby ułamkowe) iezbyt ekonomiczne byłoby używanie kodowania w systemie stałoprzecinkowym (np. przecinek rozdziela dwa bajty) Co chcemy tak naprawdę uzyskać? System kodowania dla którego błąd względny będzie tego samego rzędu dla wszystkich wartości biorących udział w obliczeniach. Z.Z. Podstawy informatyki 42

Skalowanie liczby Dostosowywanie skali liczby ułamkowej: B 0.000075244 B B 0.7524410 7.524410 5 4 A 47567.31 i tak dalej... A B 47567.310.75244 0.0001 Możliwość wykonania działania z zastosowaniem wszystkich cyfr znaczących. ynik jednak musi być dodatkowo pomnożony przez wykładniczy współczynnik korygujący. Z.Z. Podstawy informatyki 43

System zmiennoprzecinkowy Metoda: Kodowanie w systemie zmiennoprzecinkowym zwanym też cecha-mantysa umożliwia zapis liczb rzeczywistych z ustalonym błędem względnym system oparty na podziale liczby na cześć ułamkową zwaną mantysą oraz na wykładnik potęgi podstawy systemu zwany cechą opracowany na podstawie zapisu liczby w systemie pozycyjnym wagowym Z.Z. Podstawy informatyki 44

Reprezentacja zmiennoprzecinkowa Zmiennoprzecinkowa (Floating Point otation) reprezentacja liczby dziesiętnej: L L M L M p dl M mantysa, liczba ułamkowa ze znakiem, przedstawiona w jednym z trzech kodów ZM, ZU1, ZU2, wykładnik lub cecha, liczba całkowita ze znakiem przedstawiona również w jednym z trzech kodów (niekoniecznie tym samym co M), p wspólna podstawa kodów zastosowanych do zapisu słów M i, d liczba naturalna (zwykle równa 1). Z.Z. Podstawy informatyki 45

ormalizacja liczby zmiennoprzecinkowej Liczba zmiennoprzecinkowa jest znormalizowana, jeśli mantysa spełnia warunek: p d 1 L M Podczas czynności normalizacji następuje odpowiednie przesunięcie pozycji kropki dziesiętnej ( przecinka ), co uzasadnia nazwanie tej notacji zmiennoprzecinkową. przypadku liczb dwójkowych odbywa się to poprzez przesunięcie cyfr znaczących w prawo lub w lewo, w zależności od tego czy przecinek należy przesunąć w kierunku liczb małych, czy też dużych. Z.Z. Podstawy informatyki 46

Liczby zmiennoprzecinkowe w praktyce Metodyka dostosowywania liczby zmiennoprzecinkowej: Przykład: Przyjęto jednobajtowe słowo dwójkowe M i w kodzie ZU2. Zadanie: Przedstawienie liczby dziesiętnej L = -4.25 w dwójkowym zapisie zmiennoprzecinkowym, znormalizowanym. 1. Przekształcenie liczby L na liczbę dwójkową w kodzie ZU2: 2. ormalizacja poprzez przesunięcie przecinka dziesiętnego (warunek poprzedni slajd): 3. Stosując 8-bitowy kod ZU2 dla słów mantysy i wykładnika otrzymujemy dwójkowy zapis zmiennoprzecinkowy: 4. Sprawdzenie: L M ZU 2 L 1.011.11 L L 3 1.01111 2 M 1.01111000.0000011 M L 1 5 3 3 p 2 2 2 0.53125 2 4.25 irtualne kropki Z.Z. Podstawy informatyki 47

Znak Standard IEEE 754 Pojedyncza precyzja: mantysa 23 bity, wykładnik 8 bitów (nadmiar 127), znak 1 bit bit 31 bajt 4 2322 bajt 3 bajt 2 bajt 1 0 S E E E E E E E E M M M M M M M M M M M M M M M M M M M M M M M ykładnik Mantysa artość: 1/4 1/16 1/64 itd. 1/2 23 1/2 1/8 1/32 itd.. Mantysa jest znormalizowana do zmniejszonej podstawy wykładnika (kodowanie w formacie U1) Z.Z. Podstawy informatyki 48

Standard IEEE 754 Procedura zapisu: 1) Określamy znak: Bit31= 1 jeżeli liczba ujemna, 0 jeżeli dodatnia 2) Szukamy największej liczby postaci 2 w mniejszej niż liczba 3) Zapisujemy wykładnik = w + nadmiar 4) Dzielimy liczbę przez 2 w (wynik będzie miał postać 1.xxxx) 5) Odejmujemy 1 i szukamy mantysy Jedynka wiodąca 6) Zaznaczamy bit jako 1 jeżeli po odjęciu 1/(2 (23-bit) ) (dla pojedynczej precyzji) mamy wartość nieujemną. Jeżeli otrzymamy wartość ujemną, zaznaczamy bit jako 0 i ignorujemy tę operację. Procedurę powtarzamy aż w wyniku odejmowania otrzymamy 0 lub dojdziemy do bitu nr 0. Konwerter z liczby dziesiętnej na dwójkową w standardzie IEEE 754 Z.Z. Podstawy informatyki 49

Standard IEEE 754 Przykład: (zapisujemy liczbę 14.5) (nadmiar 127) 1) Liczba jest dodatnia Bit31 = 0 2) ajwiększa liczba 2 w mniejsza niż 14.5 to 2 3 = 8 w = 3 3) Zapisujemy wykładnik = 127 + w = 130 10000010 4) 14.5/2 3 = 1.8125 5) odejmujemy 1 i otrzymujemy 0.8125 0.8125-1/2=0.3125 bit22 = 1 0.3125-1/4=0.0625 bit21 = 1 0.0625-1/8= -0.0625 bit20 = 0 ignorujemy operację 0.0625-1/16= 0.0 bit19 = 1 Pozostałe bity mantysy = 0 01000001011010000000000000000000 znak wykładnik mantysa Z.Z. Podstawy informatyki 50

Standard IEEE 754 Pojedyncza precyzja: mantysa 23 bity, wykładnik 8 bitów, znak 1 bit, nadmiar 2 8 /2-1 = 127 Podwójna precyzja: mantysa 52 bity, wykładnik 11 bitów, znak 1 bit, nadmiar 2 11 /2-1 = 1023 Rozszerzona podwójna precyzja: mantysa 64 bity, wykładnik 15 bitów (nadmiar 2 64 /2-1 = 16383), znak 1 bit Z.Z. Podstawy informatyki 51

Standard IEEE 754 Precyzja jest określana przez liczbę miejsc po przecinku, czyli jest określana przez mantysę. ajmniejsza wartość możliwa do zapisania w mantysie Pojedyncza precyzja: Mantysa ma 23 bity 1/2 23 1.2* 10-7 7 cyfr po przecinku Podwójna precyzja Mantysa ma 52 bity 1/2 52 2.2* 10-16 15-16 cyfr po przecinku Rozszerzona podwójna precyzja Mantysa ma 64 bity 1/2 64 5.4* 10-20 19 cyfr po przecinku Z.Z. Podstawy informatyki 52

Teksty składają się ze znaków Podstawą zapisu jest jeden bajt Znaki i teksty 1 bajt przyjmuje 256 różnych wartości ażną cechą kodowania jest jednoznaczność: przyjęcie pewnego sposobu kodowania powinno być powszechne: ASCII: 0 127 standardowe, 128 256 zależne od kraju Znaki specjalne 0-31 Spacja 32 Cyfry 48 57 ielkie litery 65 90 p. Litera : 01010111 kod binarny 87 Małe litery 97-122 Pozostałe kody: Kropka, przecinek, itd 33-47, 58-64, 91-96, 123-127 87 ASCII (American Standard Code for Information Interchange) Kod znaku Znak Z.Z. Podstawy informatyki 53

Kody UICODE 256 znaków alfanumerycznych jakie można zakodować za pomocą rozszerzonego kodu ASCII nie dawało możliwości zakodowania znaków diakrytycznych wielu języków np. polskiego. Odpowiedzią jest kod nazwany UICODE o długości 16 bitów dla każdego znaku. Daje to możliwość zakodowania 2 16, czyli 65536 znaków. Z.Z. Podstawy informatyki 54

Obrazy, dźwięki,.. Ciągi bajtów muszą przechować teksty, liczby, muzykę, animacje: wszystkie informacje zapisywane w wyniku wykonywanych działań. Potrzebne jest zakodowanie informacji, inne niż w przypadku liczb czy też tekstów. Kodowanie koloru bit = 0 bit = 1 biały czarny kolor budowany jest z kilku bitów Kodowanie rysunku obraz mapa bitowa. (plik.bmp) dokładne (formaty.tif,.gif) uproszczone (format.jpg) Kodowanie muzyki mp3 mp4 DVD Im większa precyzja tym większy rozmiar pliku Z.Z. Podstawy informatyki 55

Kompresja i szyfrowanie Kompresja Działanie mające na celu zmniejszanie objętości pliku. Przy kompresji wykorzystuje się podobieństwa i regularności występujące w plikach. Program przeprowadza analizę i wybiera fragmenty, które można zapisać w sposób zajmujący mniejszą liczbę bajtów. Kompresja bezstratna: odtworzona informacja jest identyczna z oryginałem; dekompresja jest w pełni odwracalna. Kompresja stratna: polega ona na eliminowaniu pewnych elementów oryginału, w celu lepszej efektywności kompresji. Możemy powiązać jakość ze stopniem kompresji. Szyfrowanie ajczęściej stosowane algorytmy oparte na wykorzystaniu liczb pierwszych. Informacja jest szyfrowana przed wysłaniem, odczytanie wymaga posiadania deszyfratora oraz co najmniej jednego klucza. Z.Z. Podstawy informatyki 56