Czynnik, któremu człowiek może przypisać określony sens (znaczenie) w celu wykorzystania do różnych celów. Wszystko to, co może być zużytkowane do

Podobne dokumenty
Informacja Informacja

Informacja. Informacja. Informacja. Informacja/wiadomość. Zbiór danych zebranych w celu ich przetworzenia i otrzymania wyników (nowych informacji).

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

Zapis liczb binarnych ze znakiem

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

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

Technologie Informacyjne

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

Pracownia Komputerowa wykład IV

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

Pracownia Komputerowa wykład V

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

Techniki multimedialne

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

Teoretyczne Podstawy Informatyki

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

PODSTAWY INFORMATYKI. Informatyka? - definicja

Podstawy Informatyki

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

Pracownia Komputerowa wykład VI

Plan wyk ladu. Kodowanie informacji. Systemy addytywne. Definicja i klasyfikacja. Systemy liczbowe. prof. dr hab. inż.

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

Pracownia Komputerowa wyk ad IV

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

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

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

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

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

Systemy zapisu liczb.

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

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

Wprowadzenie do informatyki - ć wiczenia

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

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

Pracownia Komputerowa wyk ad V

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

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

Wprowadzenie do informatyki - ć wiczenia

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

SYSTEMY LICZBOWE 275,538 =

Pracownia Komputerowa wyk ad VI

Wstęp do Informatyki

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

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Naturalny kod binarny (NKB)

Arytmetyka binarna - wykład 6

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

Stan wysoki (H) i stan niski (L)

Arytmetyka komputera

Kodowanie informacji. Przygotował: Ryszard Kijanka

System Liczbowe. Szesnastkowy ( heksadecymalny)

Architektura komputerów

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

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

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

Systemy liczbowe używane w technice komputerowej

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

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

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

Systemy liczbowe Plan zaję ć

Metoda znak-moduł (ZM)

L6.1 Systemy liczenia stosowane w informatyce

Operacje arytmetyczne

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

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

Architektura komputerów

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

Kod U2 Opracował: Andrzej Nowak

1.1. Pozycyjne systemy liczbowe

Podstawy Informatyki dla Nauczyciela

Podstawy informatyki. Reprezentacja danych w systemach cyfrowych

Kodowanie informacji. Kody liczbowe

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

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

DZIESIĘTNY SYSTEM LICZBOWY

Komunikacja człowiek-komputer

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

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

Kodowanie liczb całkowitych w systemach komputerowych

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

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

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

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

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

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Wykład 2. Informatyka Stosowana. 9 października Informatyka Stosowana Wykład 2 9 października / 42

Wykład 2. Informatyka Stosowana. 10 października Informatyka Stosowana Wykład 2 10 października / 42

Wprowadzenie do informatyki - ć wiczenia

Architektura komputerów

B.B. 2. Sumowanie rozpoczynamy od ostatniej kolumny. Sumujemy cyfry w kolumnie zgodnie z podaną tabelką zapisując wynik pod kreską:

Wprowadzenie do informatyki ćwiczenia

Cyfrowy zapis informacji

wagi cyfry pozycje

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

Wstęp do informatyki- wykład 1

1. Operacje logiczne A B A OR B

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

Transkrypt:

Informacja Informacja Czynnik, któremu człowiek może przypisać określony sens (znaczenie) w celu wykorzystania do różnych celów. Wszystko to, co może być zużytkowane do bardziej sprawnego wyboru działań prowadzących do realizacji pewnego celu.

Informacja Zbiór danych zebranych w celu ich przetworzenia i otrzymania wyników (nowych informacji). Wielkość abstrakcyjna, która może być przechowywana, przesyłana i przetwarzana w pewnych obiektach a także stosowana do sterowania obiektami (obiekty: organizmy żywe, urządzenia techniczne, systemy obiektów). Informacja/wiadomość Jest trzynasta. Godzinę temu była dwunasta. Jest trzynasta. Godzinę temu był ostatni w tym dniu samolot do Polski. Wiadomość jest rodzajem nośnika (sposobem zapisu) informacji, informacja jest zaś treścią wiadomości.

Wiadomość ść/komunikat Wiadomość może być przekazana w formie komunikatu. Ten sam komunikat może przekazywać różne wiadomości dla różnych odbiorców Wiadomość o wszczęciu zbrojnego wystąpienia przeciwko rządowi republikańskiemu przekazali spiskowcy frankistowscy komunikatem nad Hiszpanią niebo jest czyste. Informacja/wiadomość ść/komunikat Komunikat jest odpowiednio zakodowaną wiadomością, zawierającą pewną ilość informacji.

Definicja Informacja - wielkość abstrakcyjna, która może być przechowywana w pewnych obiektach, przesyłana pomiędzy obiektami, przetwarzana w pewnych obiektach i stosowana doterowania pewnymi obiektami, przy czym przez obiekty rozumie się organizmy żywe, urządzenia techniczne oraz systemy takich obiektów. /A.Mazurkiewicz/ Informacja W praktyce informacje można zdefiniować jako dane wraz ze sposobem ich interpretowania. Dane jest więc pojęciem ogólniejszym, który obejmuje informacje bez znanego lub istotnego w danym kontekście znaczenia ich treści.

Teoria informacji Informacją zajmuje się nauka zwana Teorią Informacji - dotyczy ona przekazywania wiadomości ze źródła wiadomości do ich przeznaczenia (odbiorcy). Ilość informacji Fundamentalną koncepcją teorii informacji jest przyjęcie, że informacja zawarta w przekazie zwana zawartością informacyjną jest definiowalną i mierzalną wielkością matematyczną. Określenie zawartość nie odnosi się do znaczenia przekazywanej wiadomości, ale do prawdopodobieństwa, że określona wiadomość zostanie odebrana (odczytana) z całego zbioru możliwych wiadomości. Największa wartość zawartości informacyjnej odnosi się do wiadomości, która jest najmniej prawdopodobna.

Twierdzenie Shannona Dla odniesienia zawartości informacyjnej (k) do prawdopodobieństwa, Shannon wprowadził proste równanie: k=log 2 1/p, gdzie p jest prawdopodobieństwem uzyskania (otrzymania, zaistnienia) wiadomości, Im większe jest prawdopodobieństwo wyniku dla zdarzenia, tym mniejszą ilość informacji otrzymuje się w związku z jego zaistnieniem. I na odwrót - im mniej prawdopodobny był wynik zdarzenia, tym więcej informacji zawiera wiadomo o jego zaistnieniu. Łącze informacyjne Zakłócenia Źródło Nadajnik (kodowanie) Kanał Odbiornik (dekodowanie) Przeznaczenie informacji Informacja Sygnały Sygnały Informacja

Źródło o informacji Źródła analogowe przykłady Termometr, barometr Struny głosowe Instrumenty muzyczne Źródła cyfrowe przykłady Klawiatura Telegraf Źródło o informacji Generuje wiadomo (znak), koduje je w postaci sygnału i wysyła znaki (jeden po drugim w czasie). Modelem generacji jest zdarzenie losowe. Zakładamy dyskretne i stacjonarne zdarzenia losowe, tzn.: znaki są wybierane ze skończonego zbioru, z niezależnym od czasu prawdopodobieństwem.

Kanał przesyłowy Powietrze Linie telefoniczne Ethernet CD, DVD Dyski magnetyczne Pamięć operacyjna Przestrzeń międzyplanetarna Kanał przesyłowy na przesyłany sygnał oddziałują tu inne sygnały losowe, tzw. sygnały zakłócające - odebrany przez odbiornik sygnał może by różny od sygnału nadanego.

Odbiornik informacji następuje tu odwrotne dekodowanie sygnału na postać wiadomości (znaku) i odczytanie tej wiadomości. Odbiorca wiadomości musi podjąć decyzję, który spośród ustalonych z góry znaków został przyjęty. Kodowanie Kodowanie to zapisywanie informacji w określony sposób. Kodowanie: Alfabet wejściowy A (np( np. A={a,b,,z,z}) Alfabet wyjściowy B każdej literze z A przyporządkowuje ciąg g liter z B

Kodowanie Kodowanie binarne: każdemu elementowi alfabetu przyporządkowuje ciąg g binarny (np( np.. a 0001, a b 0010, itd. ) Inaczej K(a)=0001, K(b)=0010, gdzie K to kod. Słowo kodowe Jeśli K(a)=0001, to 0001 jest słowem s kodowym a. Kodowanie o stałej długod ugości: Kodowanie Każde słowo s kodowe ma tęt samą długość np.. K(a)=0001, K(b)=0010, K(c) ) musi mieć 4 bity Kodowanie o zmiennej długod ugości: Słowa kodowe mogą mieć różne długod ugości np.. K(a)=0001, K(b)=100 Kodowanie jednoznaczne Po zakodowaniu słowa s x do postaci y można je odkodować tylko na jeden sposób, uzyskując c x. Warunek jednoznaczności ci kodu o stałej długod ugości: Dla każdych dwóch liter a b wystarczy K(a) K(b)

Entropia informacyjna źródła informacji Informacja docierająca od nadawcy do odbiorcy, ulega różnorakim modyfikacjom, czasami wręcz zniekształceniom, do których przyczyniają się zarówno sami uczestnicy procesu komunikowania, jak i otoczenie fizyczne, a nawet kod. Zakłócenia tego rodzaju nazywane są entropią informacyjną lub szumem. Jeżeli źródło może nadawać n różnych komunikatów, to jego entropią informacyjnąźródła nazywamy wartością oczekiwaną ilości informacji w komunikatach z tego źródła. Entropia informacyjna pojęcie entropii zostało o zapożyczone z termodynamiki do określenia średniej zawartości informacyjnej wiadomości z określonego źródła. entropia może e być rozumiana intuicyjnie jako miara nieuporządkowania systemu. w teorii informacji entropia wiadomości równa r sięśredniej zawartości informacyjnej. jeśli w jakimś zbiorze wiadomości, prawdopodobieństwo ich wystąpienia jest równe r to całkowit kowitą entropię określa wzór r H = log 2 N, gdzie N jest liczbą możliwych wiadomości w zestawie.

Redundancja Redundancja to ilość informacji przekraczająca wymagane do rozwiązania problemu minimum. Ułatwienie odtworzenia danych po ich częś ęściowej utracie, czy uszkodzeniu lub też do wykrycia takiego uszkodzenia (bit parzystości, suma kontrolna, kod nadmiarowy CRC) Nadmiarowość jest cechą każdego systemu informacyjnego przesyłaj ającego jakieś dane cyfrowe, Usuwanie nieprzydatnej redundancji to kompresja danych. Co przekazuje informacje? Informację przekazuje możliwość porównania dwóch stanów: - zmiana stanu jest informacją - brak zmian to brak informacji

Jednostki informacji bit podstawowa, najmniejsza i niepodzielna jednostka informacji cyfrowej, jaka może e być przetwarzana przez komputer bit może e przechowywać informację o jednym z dwóch możliwych stanów przyjmuje wartości oznaczane jako 0 albo 1 bit to skrót t terminu BInary DigiT. bit to po angielsku kawałek skrót: b Jednostki informacji 1 bit: 0, 1, rozróżnia 2 znaki 2 bity: 00, 01, 10, 11, rozróżniają 4 znaki. 3 bity: 000, 001, 010, 011, 100, 101, 110, 111, rozróżniają 8 znaków. 4 bity: 0000... 1111, rozróżniają 16 znaków (tetrada) 8 bitów pozwala odróżnić 28 = 16 x 16 = 256 znaków Cztery bity to tetrada Osiem bitów tworzy tzw. oktet zwany również bajtem (B)

Jednostki informacji Dwa bajty to (najczęś ęściej...) półsłowo. Cztery bajty (32 bity) to słowo. 64 bity to podwójne słowos owo. Słowo komputerowe - ilość informacji przetwarzanej przez komputer. Komputer 8, 8, 16,, 32 (64,, 128-) ) bitowy oznacza wielkość grupy danych, którą komputer może operować jako całości cią. Jednostki informacji W informatyce nazwy przedrostków nie odpowiadają tym w układzie SI kilo = 1000= 10 3 mega = 1000000= 10 6 = kilo x 1000 giga = 1000000000= 10 9 = mega x 1000 tera = 1000000000000 = 10 12 = giga x 1000 Kilo = 1024= 2 10 Mega = 1048576= 2 20 = Kilo x 1024 Giga = 1073741824= 2 30 = Mega x1024 Tera = 1099511627776 = 2 40 = Giga x 1024

Wielkość danych 2 10 =1024=1K kilobajt, typowa strona tekstu to kilka KB; 2 20 =1024K=1M megabajt, książka bez grafiki lub minuta muzyki; 2 30 =1024M=1G gigabajt, film cyfrowy, sporo grafiki, ludzki genom; 2 40 =1024G=1T terabajt, duża biblioteka, szerokoekranowy film w kinie; 2 50 =1024T=1P petabajt, ludzka pamięć; Rozróżnienie B i b: B=bajty, KB=kilobajty, MB=megabajty, GB=gigabajty b=bity, Kb=kilobity, Mb-megabity... Dlaczego komputery przetwarzają bity? Bity sąs proste mogą przyjmować tylko jeden z dwóch stanów: 0 i 1. Dlatego układy operujące na bitach sąs dużo o prostsze niż dla innych jednostek. Za pomocą bitów w można dobrze kodować dowolną informację,, więc c przetwarzanie informacji można wykonywać przy pomocy układ adów w operujących na bitach.

Dlaczego komputery przetwarzają bity? Bity sąs odporne na zakłócenia - w czasie przekazu należy y wykryć tylko dwa poziomy, wysoki H - 1 i niski L - 0. Brak wartości pośrednich. W przypadku innych jednostek sygnał musi mieć więcej poziomów, a więc c jest bardziej podatny na przekłamania w trakcie transmisji. Binarny system pozycyjny da się bezpośrednio zakodować w postaci bitów - każdej cyfrze binarnej odpowiada jeden bit (na bitach można wykonywać dowolne operacje arytmetyczne, a więc c liczyć) Przyszłość maszyn liczących cych komputer kwantowy Informacją kwantową nazywamy informację zawartą w stanie układu kwantowego. Jednostką informacji kwantowej jest kubit. Informacja kwantowa może być zakodowane w nielokalnych związkach pomiędzy poszczególnymi elementami układu, które nie mają odpowiednika w klasycznej teorii informacji. Mówimy wtedy, że układ jest w stanie splątanym.

Przyszłość maszyn liczących cych komputer kwantowy Inna cechą odróżniaj niającą informację kwantową od klasycznej informacji jest jej probabilistyczność ść. Mierząc c wartość jednego kubitu,, możemy uzyskać z pewnym prawdopodobieństwem wynik 0 lub 1. Z wyjątkiem pewnych szczególnych przypadków w nie możemy przewidzieć który z nich uzyskamy. System liczbowy Zbiór reguł do jednolitego zapisywania i nazywania cyfr. addytywne pozycyjno-wagowe

Systemy addytywne Posiadają osobne symbole dla pierwszych kilku małych liczb, a następnie posiadają kolejne symbole dla ich wielokrotności. W systemach tych liczby tworzy się przez "dodawanie" kolejnych symboli i stąd ich nazwa Przykład Jeśli "X"=10,"V"=5,"I"=1 to XVI = 10+5+1 = 16) (rzymski system liczbowy) Systemy pozycyjno-wagowe System pozycyjny to taki, w którym znaczenie znaków zależy od ich pozycji. System wagowy to taki, w którym każdej pozycji cyfry przypisana jest inna waga. Liczbę przedstawia się jako ciąg cyfr, przy czym wartość tej liczby zależy zarówno od cyfr jak i miejsca, na którym się one znajdują w tym ciągu Przykład Liczba 5004 w dziesiętnym systemie liczbowym, w którym podstawą pozycji jest 10 : 5 x 10 3 + 0 x 10 2 + 0 x 10 1 + 4 x 10 0 = 5 x 1000 + 4 x 1

System pozycyjno-wagowy Liczbę całkowitą L w systemie pozycyjnym o podstawie (bazie) r zapisujemy w postaci: (a n-1 a 1 a 0 ) r Unikalną reprezentacją liczby o wartości L jest zbiór cyfr {a n-1,,a 1,a 0 ) takich, że n = i= 0 P - podstawa systemu a kolejne cyfry w liczbie i indeks kolejnych cyfr L ap i i System dziesiętny (decymalny, arabski ) Podstawę systemu dziesiętnego tworzy liczba 10. Zapis liczby tworzymy za pomocą cyfr o przypisanych wartościach od 0 do 9. Przykład 126 10 = 1x10 2 + 2x10 1 + 6x10 0

System dwójkowy (binarny) Podstawę systemu binarnego tworzy liczba 2. Zapis liczby tworzymy za pomocą cyfr o przypisanych wartościach 0 i 1. Przykład 1010 2 = 1x2 3 + 0x2 2 + 1x2 1 + 0x2 0 = 8 + 2 = 10 10 System dwójkowy (binarny) Naturalny system informatyki Zalety: Prostota łatwa realizacja techniczna (elektronika) możliwość interpretacji cyfr {0, 1} jako wartości Wady: logicznych długość zapisu liczby przyzwyczajenie do systemu dziesiętnego

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0 1 2 3 4 5 6 7 8 9 A B C D E F System szestnastkowy (hexadecymalny) Podstawę systemu binarnego tworzy liczba 16. Zapis liczby tworzymy za pomocą cyfr o przypisanych wartościach od 0 do 9 oraz kolejne litery alfabetu łacińskiego A, B, C, D, E, F. Przykład A1F 16 = Ax16 2 + 1x16 1 + Fx16 0 = 10x256 + 1x16 + 15x1 = 2591 10 Po co jest system szestnastkowy? Adresy komórek pamięci są szesnastkowe Zawartość komórek (bajtów) jest określana w sposób szesnastkowy

Zadania 43521 (7) =??? (10) 2101122 (3) =??? (10) AGF63B (17) =??? (10) Algorytm Hornera obliczania dziesiętnej wartości liczby całkowitej n - liczba cyfr w zapisie pozycyjnym danej liczby p - podstawa systemu pozycyjnego, w którym jest zapisana liczba c i - cyfra stojąca na i-tej pozycji. Pozycja o numerze 0 jest pierwszą pozycją od strony prawej. w - obliczana wartość liczby 1. w 0 2. i n - 1 3. w c i + w x p 4. jeśli i = 0, to koniec, w zawiera wartość liczby 5. i i - 1 6. wróć do punktu 3

Algorytm Hornera przykład Obliczyć przy pomocy algorytmu Hornera dziesiętną wartość liczby 742031 zapisanej w systemie pozycyjnym o podstawie p=8. w 0 w 7 + 0 x 8 = 7 w 4 + 7 x 8 = 60 w 2 + 60 x 8 = 482 w 0 + 482 x 8 = 3856 w 3 + 3856 x 8 = 30851 w 1 + 30851 x 8 = 246809 i kończymy, ponieważ osiągnęliśmy ostatnią cyfrę Algorytm Hornera zadanie Obliczyć przy pomocy algorytmu Hornera wartość liczby 2210112 zapisanej w systemie pozycyjnym o podstawie p=3.

Metoda przeliczania liczb Problem - znalezienie kolejnych cyfr zapisu liczby dziesiętnej w systemie docelowym. Wartość liczby L jest równa zgodnie ze wzorem: L = C n-1 p n-1 + C n-2 p n-2 +... + C 2 p 2 + C 1 p + C 0 Do wydobycia poszczególnych cyfr C i, i = 0,1,2,...,n-1, są nam potrzebne dwa działania: div - dzielenie całkowitoliczbowe - określa ile całkowitą ilość razy dzielnik mieści się w dzielnej, na przykład: 9 div 4 = 2, gdyż 4 mieści się w 9 dwa razy. mod - reszta z dzielenia całkowitoliczbowego, na przykład: 9 mod 4 = 1,gdyż 4 mieści się w 9 dwa razy, co daje 8 i pozostaje reszta 1. Znajdowanie rozwinięcia liczby o podstawie p w - wartość liczby p - podstawa systemu pozycyjnego c i - cyfra na i-tej pozycji w systemie pozycyjnym o podstawie p 1. i 0 2. c i reszta z dzielenia w / p 3. w wynik dzielenia całkowitego w / p 4. jeśli w = 0, to kończymy, wszystkie cyfry znalezione 5. i i + 1 6. wróć do punktu 2

Znajdowanie rozwinięcia liczby o podstawie p przykład Przeliczyć wartość 12786 na system piątkowy. w 12786 / 5 = 2557 i reszta 1 w 2557 / 5 = 511 i reszta 2 w 511 / 5 = 102 i reszta 1 w 102 / 5 = 20 i reszta 2 w 20 / 5 = 4 i reszta 0 w 4 / 5 = 0 i reszta 4 (koniec obliczeń, ponieważ otrzymaliśmy wartość 0) 12786 (10) = 402121 (5) Znajdowanie rozwinięcia liczby o podstawie p zadania Przeliczyć wartość 86597 (10) na system dwójkowy. Przedstawić w systemie trójkowym liczbę 325748 (10). Przedstawić w systemie czwórkowym liczbę 2743 (10).

Konwersja dwójkowo jkowo-ósemkowa cyfry ósemkowe cyfra 0 1 2 3 4 5 6 7 wartość 000 (2) 001 (2) 010 (2) 011 (2) 100 (2) 101 (2) 110 (2) 111 (2) 110101111011010101011101 (2) 110 101 111 011 010 101 011 101 (2) 110 101 111 011 010 101 011 101 6 5 7 3 2 5 3 5 110101111011010101011101 (2) = 65732535 (8) Konwersja ósemkowo-dwójkowa cyfry ósemkowe cyfra 0 1 2 3 4 5 6 7 wartość 000 (2) 001 (2) 010 (2) 011 (2) 100 (2) 101 (2) 110 (2) 111 (2) 7 5 2 4 0 1 111 101 010 100 000 001 752401 (8) = 111101010100000001 (2)

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Konwersja dwójkowo jkowo-szestnastkowa 0 1 2 3 4 5 6 7 8 9 A B C D E F 110101111011010101011101 (2) 1101 0111 1011 0101 0101 1101 (2) D 7 B 5 5 D 110101111011010101011101 (2) = D7B55G (16) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Konwersja szestnastkowo-dw dwójkowa 0 1 2 3 4 5 6 7 8 9 A B C D E F D 7 B 5 5 D 1101 0111 1011 0101 0101 1101 D7B55G (16) = 111101010100000001 (2)

Reprezentacja informacji Sposób b reprezentacji informacji w systemie Jak to się dzieje że w pamięci komputera można przechowywać teksty, obrazy, dźwięki i liczby? Dzięki kodowaniu informacji. Kodowanie informacji jest to przedstawienie informacji w postaci komunikatu zrozumiałego przez odbiorcę. Do kodowania używamy określonego zbioru, np.. cyfr, znaków, impulsów.

BCD Historycznie pierwszą umową był standard BCD (Binary Coded Decimal), który służył do zapisu liczb dziesiętnych W systemie BCD nie koduje się wartości binarnej liczby, tylko jej poszczególne cyfry dziesiętne. Każdą cyfrę dziesiętną przedstawia się za pomocą 4 bitów według tabeli kodu BCD. BCD cyfra 0 1 2 3 4 5 6 7 8 9 BCD 0000 (2) 0001 (2) 0010 (2) 0011 (2) 0100 (2) 0101 (2) 0110 (2) 0111 (2) 1000 (2) 1001 (2) 9234 (10) = 1001 0010 0011 0100 = 1001001000110100 (BCD) 10000110000001110001 (BCD) 1000 0110 0000 0111 0001 = 86071 (10) Liczba zapisana w kodzie BCD po zamianie na system szesnastkowy da się bezpośrednio odczytać jako liczba dziesiętna.

EBCDIC i ASCII BCD został rozszerzony przez firmę IBM do EBCDIC (Extended Binary Coded Decimal Interchange Code) EBCDIC wyparty przez ASCII (American Standard Code for Information Interchange), będący standardowym sposobem przypisania liczb do znaków pisarskich. ASCII W początkowej wersji obejmował 128 znaków zapisanych na 7 bitach. Podstawowe znaki kodu ASCII: 26 małych i 26 dużych, 10 cyfr, spacje i znaki specjalne:!, @, #, specjalne znaki sterujące o kodach dziesiętnych 0..31.

ASCII Np. Znak C : wartość dziesiętna 67 zakodowana binarnie: 100 0011 poprzedzona bitem kontrolnym 0 ostateczny kod 0100 0011 ASCII - białe e znaki, dwuznaki Pośród znaków ASCII wydzieloną grupę stanowią tzw. białe znaki (ang. whitespace) albo inaczej odstępy. Są one uznawane za znaki oddzielające pewne części tekstu. Należą do nich 4 znaki: spacja (kod 32), tabulacja (kod 9), koniec wiersza (kod 10) oraz powrót karetki (kod 13). Z pojedynczych znaków formowane są tzw. dwuznaki- najważniejszy z nich to znak końca wiersza (linii) w tekście - w Windows koniec wiersza zaznacza się sekwencją dwóch znaków CR (kod 13) i LF (kod 10). W Linux natomiast samym znakiem LF (kod 10).

Extended ASCII Użycie ósmego bitu bajta tworzy tzw. Extended ACSII, potrzebny do reprezentacji innych znaków (np. narodowych znaków diakrytycznych) Extended ASCII Standard ASCII reprezentując jedynie 256 różnych znaków miał znaczne ograniczenia użycie ósmego bitu nie zostało ujednolicone, istniały różne międzynarodowe strony kodowe, zawierające typowe dla danego języka znaki W Polsce istniało wiele standardów kodowania polskich znaków, najbardziej popularne to: ISO- 8859-2 (Latin-2) i Windows-1250.

Unicode W celu ujednolicenia sposobu interpretacji kodów liczbowych jako znaków, oraz zapewnienia możliwości reprezentowania za ich pomocą zarówno tekstów pochodzących z przeróżnych zakątków świata jak i pewnych dodatkowych symboli zaproponowano nowy sposób kodowania znaków znany pod nazwą Unicode. Podstawowe właściwow ciwości Unicode Jednoznaczność każdemu znakowi zakodowanemu za pomocą Unicode odpowiada zawsze ta sama wartość liczbowa i odwrotnie. Uniwersalność dostępne znaki obejmują wszystkie powszechnie używane języki i symbole. 16-bitowa reprezentacja każdy znak reprezentowany jest w postaci 16-bitowej liczby, czyli można zakodować 2 16 =65536 różnych znaków Efektywność ułatwienie manipulowania tekstami, gdyż identyfikacja znaku nie zależy od sekwencji sterujących czy znaków następujących bądź poprzedzających

Standardy wewnątrz Unicode utf - 8 - unikodem ośmiobitowym, Pierwsze 128 znaków pokrywa się z tablicą ASCII i jest zapisywana za pomocą jednego bajta, natomiast znaki dodatkowe (np. polskie literki) są zapisywane za pomocą specjalnych kilkubajtowych sekwencji. utf -16 - kodowaniem dwubajtowym. Każdemu znakowi odpowiadają dwa bajty. utf -32 - Pewnym problemem mogą być języki ideograficzne, na przykład chiński liczący tysiące znaków. Problemy takie ostatecznie rozwiązuje kodowanie czterobajtowe utf-32 (cztery bajty dają 232 = 4 miliardy kombinacji). Standardy wewnątrz Unicode Utf-8, utf-16 oraz utf-32 to trzy najpopularniejsze sposoby fizycznego zapisu uniwersalnego zestawu znaków UCS (ang. Universal Character Set). Uniwersalny Zestaw Znaków jest zdefiniowany przez normę ISO 10646 i jest zgodny z unikodem publikowanym przez organizację Unicode pod adresem http://www.unicode.org.

Liczby naturalne Przechowywane są dokładnie tak, jak zapisalibyśmy je w systemie dwójkowym. Każdy bit stanowi pojedynczą cyfrę w tym systemie. Zapis binarny prosty pozwala za pomocą n cyfr zapisywać liczby z zakresu: 0 L 10 2 n 1 1 bajt to 2 8 kombinacji, czyli zakres 0-255 2 bajty to 2 16 kombinacji, czyli zakres 0-65536, 4 bajty to ponad 4 miliardy kombinacji Dodawanie liczb binarnych Do wykonywania dodawania niezbędna jest znajomość tabliczki dodawania, czyli wyników sumowania każdej cyfry z każdą inną: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 0101= 5 10 + 0110= 6 10 1011=11 10 1100=12 10 + 0011= 3 10 1111=15 10 1010=10 10 + 1010=10 10 10100=20 10 1111=15 10 + 0001= 1 10 10000=16 10

Dodawanie liczb binarnych - zadania Zsumować liczby binarne: 1111001 (2) oraz 10010 (2). 01111111 (2) oraz 1 (2) Dodawanie liczb binarnych - problem W pamięci komputera liczby binarne przechowywane są w postaci ustalonej ilości bitów (np. 8, 16, 32 bity). Jeśli wynik sumowania np. liczb 8 bitowych jest większy niż 8 bitów, to najstarszy bit (dziewiąty bit) zostanie utracony. Sytuacja taka nazywa się nadmiarem (ang. overflow) i występuje zawsze, gdy wynik operacji arytmetycznej jest większy niż górny zakres danego formatu liczb binarnych (np. dla 8 bitów wynik większy od 28-1, czyli większy od 255): 11111111 (2) + 00000001 (2) = 1 00000000 (2) (255 + 1 = 0)

Odejmowanie liczb binarnych Przy odejmowaniu korzystamy z tabliczki odejmowania: 0-0 = 0 0-1 = 1 i pożyczka do następnej pozycji 1-0 = 1 1-1 = 0 Pożyczka oznacza konieczność odjęcia 1 od wyniku odejmowania cyfr w następnej kolumnie. 1101110 (2) - 1111 (2) = 1011111 (2) (110 (10) - 15 (10) = 95 (10) ). 1 1101110-1111 1 11 1101110-1111 11 11111 1101110-0001111 1011111 Odejmowanie liczb binarnych - zadania Odjąć liczby binarne: 10000000 (2) - 0000001 (2) =??? 10101010 (2) - 01010101 (2) =???

Odejmowanie liczb binarnych problem Jeśli od liczby większej odejmiemy mniejszą, to wynik będzie ujemny. 11111111 00000000-00000001 11111111 Otrzymujemy same jedynki, a pożyczka nigdy nie zanika. Sytuacja taka nazywa się niedomiarem (ang. underflow) i występuje zawsze, gdy wynik operacji arytmetycznej jest mniejszy od dolnego zakresu formatu liczb binarnych (dla naturalnego kodu dwójkowego wynik mniejszy od zera). Liczby całkowite Jak kodowany jest znak liczby? Istnieją trzy główne sposoby kodowania liczb ze znakiem: kod ZNAK-MODUŁ, kod U1, kod U2.

Kod znak-modu moduł Najstarszy bit liczby jest bitem znaku. Reszta bitów określa wartość bezwzględną (moduł) liczby: Jeśli przyjmiemy do zapisu liczb format całkowity n- bitowy, to liczby w kodzie znak-moduł mają następującą postać: c n-1 c n-2 c n-3...c 2 c 1 c 0 znak moduł Kod znak-modu moduł Wartość n-bitowej, całkowitej liczby w dwójkowym kodzie znak-moduł obliczamy wg wzoru: L ZM = (-1) bit znaku x moduł liczby Rozpisując poszczególne bity otrzymujemy: b n-1 b n-2...b 2 b 1 b 0 = (-1) bn-1 (b n-2 2 n-2 +... + b 2 2 2 + b 1 2 1 + b 0 2 0 ) gdzie b - bit, cyfra dwójkowa 0 lub 1, n - liczba bitów w zapisie liczby

Kod znak-modu moduł Przykłady 10110111 (ZM) = (-1) 1 x (2 5 + 2 4 + 2 2 + 2 1 + 2 0 ) 10110111 (ZM) = - (32 + 16 + 4 + 2 + 1) 10110111 (ZM) = - 55 (10) Zadanie Obliczyć wartość dziesiętną liczby 00011111 (ZM). Przeliczanie liczb dziesiętnych na zapis ZM 1. Jeśli liczba jest dodatnia, to bit znaku ma wartość 0. W przeciwnym razie bit znaku ma wartość 1. 2. Obliczamy wartość absolutną liczby, czyli jej moduł. 3. Wyznaczamy bity modułu przeliczając liczbę dziesiętną na zapis dwójkowy. 4. Otrzymane bity modułu uzupełniamy w miarę potrzeby bitami o wartości 0, aby otrzymać ustaloną w formacie liczbę bitów dla modułu. 5. Do bitów modułu dodajemy bit znaku i otrzymujemy zapis ZM.

Przeliczanie liczb dziesiętnych na zapis ZM zadanie Przedstawić wartość -69 w 8-bitowym kodzie ZM. Rozw. -69 (10) = 11000101 (ZM) Zakres liczb w zapisie ZM Zadanie polega na znalezieniu najmniejszej i największej wartości liczby, którą da się przedstawić w danym zapisie ZM. Łatwo zauważyć, że w obu przypadkach moduł musi mieć wartość maksymalną, a bit znaku 1 dla wartości najmniejszej i 0 dla wartości największej. Zakres n bitowej liczby w kodzie ZM wynosi Z (ZM) = <-2 n-1 + 1, 2 n-1-1>

Zapis znak-modu moduł wady koncepcyjnie prosty, lecz stwarzał poważne problemy przy wykonywaniu operacji arytmetycznych Niejednoznaczność!!! - wartość 0 posada dwa słowa kodowe: 0000 oraz 1000. Bit znakowy posiada zupełnie inne znaczenie od pozostałych bitów i nie uczestniczy bezpośrednio w operacjach arytmetycznych. System uzupełnie nień do 1 U1 U1 (ang. 1C - One's Complement) - wszystkie bity zapisu liczby posiadają swoje wagi Najstarszy bit jest bitem znaku i ma wagę równą (-2 n-1 +1), gdzie n oznacza ilość bitów w zapisie liczby. Pozostałe bity posiadają wagi takie jak w systemie binarnym. Waga -2 n- 1 +1 2 n-2 2 n-3 2 2 2 1 2 0 cyfra b n-1 b n-2 b n-3... b 2 b 1 b 0

Wartość dziesiętna liczby w zapisie U1 Wartość liczby U1 obliczamy zgodnie z poznanymi zasadami - cyfry mnożymy przez wagi pozycji, na których się znajdują i dodajemy otrzymane iloczyny: b n-1 b n-2 b n-3...b 2 b 1 b 0 (U1) = b n-1 (-2 n-1 +1) + b n-2 2 n-2 + b n-3 2 n-3 +... + b 2 2 2 + b 1 2 1 + b 0 2 0 gdzie b - bit, cyfra dwójkowa 0 lub 1 n - liczba bitów w zapisie liczby Cechy charakterystyczne kodu U1 Wartość 0 posada dwa słowa kodowe: 0000 oraz 1111. Liczba przeciwna zawsze powstaje w kodzie U1 przez negację wszystkich bitów: 1 (10) = 0001 (U1) : (-1) (10) = 1110 (U1) 5 (10) = 0101 (U1) : (-5) (10) = 1010 (U1) 7 (10) = 0111 (U1) : (-7) (10) = 1000 (U1) Zasada ta obowiązuje dla kodów U1 o dowolnej długości.

Przeliczanie liczb dziesiętnych na zapis U1 1.Jeśli liczba jest dodatnia, znajdujemy jej reprezentację w naturalnym kodzie binarnym i uzupełniamy bitami o wartości 0 do uzyskania zadanej liczby bitów wymaganej przez przyjęty format zapisu U1. 2.Jeśli liczba jest ujemna, wyznaczamy wartość 2 n - 1 + liczba gdzie n oznacza liczbę bitów w przyjętym formacie U1. Wartość tę kodujemy w naturalnym systemie dwójkowym i otrzymujemy kod U1 liczby wyjściowej. Przeliczanie liczb dziesiętnych na zapis U1 przykład Przykład Wyznaczyć 8-mio bitowy zapis U1 liczby dziesiętnej -113 Obliczamy: 2 8-1 - 113 = 256-1 - 113 = 142 Otrzymany wynik kodujemy w systemie dwójkowym i otrzymujemy kod U1 liczby -113: 142 (10) = 10001110 (2), czyli (-113) (10) = 10001110 (U1).

Przeliczanie liczb dziesiętnych na zapis U1 zadanie Wyznaczyć 16 bitowy zapis U1 liczby dziesiętnej -4521 Kod U1 -wady w systemie U1 wykonywanie operacji arytmetycznych wciąż wymagało dodatkowych założeń przy dodawaniu do wyniku należało dodać przeniesienie poza bit znaku, aby otrzymać poprawny wynik.

Kod uzupełnie nień do 2 U2 zmieniamy wagę bitu znakowego z (-2 n-1 + 1) na (-2 n -1), gdzie n oznacza ilość bitów w formacie kodu. Wagi stają się teraz jednorodne - bit znakowy posiada wagę ujemną, lecz o wartości bezwzględnej takiej samej jak w systemie binarnym. Nowy kod nosi nazwę uzupełnień do podstawy 2 lub w skrócie U2 (ang. 2C - Two's Complement). Wartość dziesiętna liczby w U2 Wartość liczby U2 obliczamy następująco: cyfry mnożymy przez wagi pozycji, na których się znajdują i dodajemy otrzymane iloczyny. Waga bitu znakowego jest ujemna. b n-1 b n-2 b n-3...b 2 b 1 b 0 (U2) = b n-1 (-2 n-1 ) + b n-2 2 n-2 + b n-3 2 n-3 +... + b 2 2 2 + b 1 2 1 + b 0 2 0 gdzie b - bit, cyfra dwójkowa 0 lub 1 n - liczba bitów w zapisie liczby

Wartość dziesiętna liczby w U2 Jeśli jest równy 0, liczba jest dodatnia i resztę zapisu możemy potraktować jak liczbę w systemie dwójkowym. Przykład 01101011 (U2) = 64 + 32 + 8 + 2 + 1 = 107 (10). Wartość dziesiętna liczby w U2 Jeśli bit znaku ustawiony jest na 1, to liczba ma wartość ujemną. Bit znaku ma wagę (-2 n-1 ), gdzie n oznacza liczbę bitów w wybranym formacie U2. Reszta bitów jest zwykłą liczbą w naturalnym kodzie dwójkowym. Wagę bitu znakowego i wartość pozostałych bitów sumujemy otrzymując wartość liczby U2: Przykład 11101011 (U2) = (-2 7 ) +64+32+8+2+1 = -128 + 107 = (-21) (10).

Liczba przeciwna do danej liczby U2 1. Przejść do pierwszego od prawej strony bitu zapisu liczby. 2. Do wyniku przepisać kolejne bity 0, aż do napotkania bitu o wartości 1, który również przepisać. 3. Wszystkie pozostałe bity przepisać zmieniając ich wartość na przeciwną. Liczba przeciwna do danej liczby U2 Znaleźć liczbę przeciwną w kodzie U2 do danej liczby 1100100010111010111010010100001000000 (U2). Analizę liczby rozpoczynamy ostatniej cyfry zapisu liczby. Przesuwamy się w lewą stronę. Do wyniku przepisujemy wszystkie kolejne bity o wartości 0, aż do napotkania bitu 1. 1100100010111010111010010100001000000 Napotkany bit 1 również przepisujemy do wyniku bez zmian: 1100100010111010111010010100001000000 Pozostałe bity przepisujemy zmieniając ich stan na przeciwny. To wszystko. Liczba przeciwna : 0011011101000101000101101011111000000

Liczba przeciwna do danej liczby U2 zadanie Wyznaczyć liczbę przeciwną w kodzie U2 do liczby 01101110 (U2). Aby się przekonać czy wyliczona została poprawna wartość należy wyliczyć wartości dziesiętne obu liczb Przeliczanie dodatnich liczb dziesiętnych na zapis U2 Znajdujemy reprezentację dwójkową danej wartości liczbowej, a następnie uzupełnić ją bitami 0 do długości formatu kodu U2. Przykład Wyznaczyć 8-mio bitowy kod U2 dla liczby dziesiętnej 27 (10). 27 (10) = 16 + 8 + 2 + 1 = 11011 (2) = 00011011 (U2).

Przeliczanie ujemnych liczb dziesiętnych na zapis U2 Jeśli do liczby 2 n (n - ilość bitów w formacie U2) dodamy przetwarzaną liczbę dziesiętną, to w wyniku otrzymamy wartość kodu dwójkowego równoważnego bitowo (tzn. o takiej samej postaci) kodowi U2 przetwarzanej liczby. Wynik dodawania zapisujemy w postaci kodu binarnego Przykład Wyznaczyć 8-mio bitowy kod U2 dla liczby dziesiętnej -45 (10). 2 8 + (-45) = 256-45 = 211 = 11010011 (2). Stąd (-45) (10) = 11010011 (U2) Liczby rzeczywiste Podejście stałoprzecinkowe zakładamy, że przecinek jest za prawym skrajnym (najmłodszym bitem) Dla liczb całkowitych w zapisie binarnym otrzymujemy zawsze dokładne wartości Kodowanie liczb rzeczywistych obarczone jest błędem

Obliczanie wartości liczby stałoprzecinkowej Zapis pozycyjny można w prosty sposób rozszerzyć na liczby ułamkowe wprowadzając pozycje o wagach ułamkowych. Wagi pozycji 10 3 10 2 10 1 10 0 10-1 10-2 10-3 10-4 10-5 Cyfry zapisu 3 5 7 9, 8 2 9 1 4 Numery pozycji 3 2 1 0-1 -2-3 -4-5 Część całkowita Część ułamkowa System pozycyjno-wagowy Liczbę stałoprzecinkową L w systemie pozycyjnym o podstawie (bazie) r zapisujemy w postaci: (a n-1 a 1 a 0 a -1 a -m ) r Unikalną reprezentacją liczby o wartości L jest zbiór cyfr {a n-1,,a 1,a 0,a -1,, a -m ) takich, że n i L= ap i i= m P - podstawa systemu a kolejne cyfry w liczbie i indeks kolejnych cyfr

Obliczanie dziesiętnej wartości liczby stałoprzecinkowej - przykład Obliczyć wartość liczby stałoprzecinkowej 213,132 (4). 213,132 (4) = 2 x 4 2 + 1 x 4 1 + 3 x 4 0 + 1 x 4-1 + 3 x 4-2 + 2 x 4-3 = 2 x 16 + 1 x 4 + 3 x 1 + 1 x 1 / 4 + 3 x 1 / 16 + 2 x 1 / 64 = 32 + 4 + 3 + 1 / 4 + 3 / 16 + 2 / 64 = 39 + 16 / 64 + 12 / 64 + 2 / 64 = 39 30 / 64 Obliczanie dziesiętnej wartości liczby stałoprzecinkowej - zadanie Obliczyć wartość liczby stałoprzecinkowej 537,462 (8).

Uproszczenie Część ułamkową potraktujemy jako liczbę całkowitą, obliczymy jej wartość i pomnożymy ją przez wagę ostatniej cyfry zapisu stałoprzecinkowego. Przykład: oblicz wartość liczby stałoprzecinkowej 0,4231(5). 5-4 = 1 /625. 4231 (5) = 4 x 5 3 + 2 x 5 2 + 3 x 5 1 + 1 x 5 0 = 4 x 125 + 2 x 25 + 3 x 5 + 1 x 1 = 500 + 50 + 15 + 1 = 566 Zatem 0,4231 (5) = 566 x 1 / 625 = 566 / 625. Uproszczenie Przykład: oblicz wartość liczby stałoprzecinkowej 0,4231(5). 0,4231 (5) = 0 x 5 0 + 4 x 5-1 + 2 x 5-2 + 3 x 5-3 + 1 x 5-4 = 0 x 1 + 4 x 1 / 5 + 2 x 1 / 25 + 3 x 1 / 125 + 1 x 1 / 625 = 0 + 4 / 5 + 2 / 25 + 3 / 125 + 1 / 625 = 500 / 625 + 50 / 625 + 15 / 625 + 1 / 625 = 566 / 625.

Algorytm Hornera obliczania wartości liczby stałoprzecinkowej n - liczba cyfr w części całkowitej m - liczba cyfr w części ułamkowej p - podstawa systemu pozycyjnego, w którym jest zapisana liczba c i - cyfra stojąca na i-tej pozycji. Pozycja o numerze 0 jest pierwszą pozycją od strony prawej. w - obliczana wartość liczby 1. w 0 2. i n - 1 3. w c i + w x p 4. jeśli i = -m, to w w x p -m i kończymy 5. i i - 1 6. wróć do punktu 3 Algorytm Hornera - liczba stałoprzecinkowa - przykład Obliczyć przy pomocy algorytmu Hornera wartość dzieisiętną liczby 237,745 zapisanej w systemie pozycyjnym o podstawie p=8. w 0 w 2 + 0 x 8 = 2 w 3 + 2 x 8 = 19 w 7 + 19 x 8 = 159 w 7 + 159 x 8 = 1279 (od tego momentu występują cyfry części uułamkowej) w 4 + 1279 x 8 = 10236 w 5 + 10236 x 8 = 81893 (ostatnia cyfra, kończymy) w 81893 x 1 / 512 = 159 485 / 512 = 159,947265625

Znajdowanie rozwinięcia liczby stałoprzecinkowej o podstawie p przykład Znaleźć rozwinięcie liczby 12 8 / 9 na system trójkowy z dokładnością do dwóch miejsc po przecinku. w 12 8 / 9 x 3 2 = 12 8 / 9 x 9 = 116 (mnożymy przez podstawę podniesioną do odpowiedniej potęgi) w 116 / 3 = 38 i reszta 2 w 38 / 3 = 12 i reszta 2 w 12 / 3 = 4 i reszta 0 w 4 / 3 = 1 i reszta 1 w 1 / 3 = 0 i reszta 1 (koniec) Otrzymaliśmy kolejne cyfry 11022. Dwie ostatnie cyfry umieszczamy po przecinku. Więc ostatecznie: 12 8 / 9 = 110,22 (3) Znajdowanie rozwinięcia liczby stałoprzecinkowej o podstawie p zadanie Znaleźć rozwinięcie liczby 1 / 10 na system dwójkowy z dokładnością do 8 miejsc po przecinku. Podpowiedź: w 1 / 10 x 2 8 = 1 / 10 x 256 = 256 / 10 = 26 (zaokrąglamy do najbliższej wartości całkowitej) 26 / 2 = 13 i reszta 0 13 / 2 =

Wady liczb stałoprzecinkowych nie możemy prosto zapisywać na niewielkiej liczbie bajtów bardzo dużych i bardzo małych liczb jeśli chcemy rozszerzyć zakres i liczbę miejsc po przecinku musimy używać bardzo dużej liczby bajtów trudny do oszacowania błąd obliczeń Zapis zmiennoprzecinkowy Załóżmy, że słowo maszyny ma długość 64 bitów. Umożliwia to reprezentację liczb całkowitych z zakresu od 0 do 2 63 1 Jednak w wielu dziedzinach (np. w astronomii) spotykamy znacznie większe wartości. Dla dużych liczb nie stosujemy te zwykle zapisu w rodzaju: N = 602 000 000 000 000 000 000 000 tylko postać wykładniczą zapisu, np.: N = 6,02 10 23 Zapis zmiennoprzecinkowy nazywa się często notacją naukową.

Zapis zmiennoprzecinkowy Liczba zapisana w systemie zmiennoprzecinkowym składa się z dwóch części: liczby stałoprzecinkowej, której wartość bezwzględna jest mniejsza od wartości podstawy systemu pozycyjnego (dokładność) podstawy podniesionej do pewnej potęgi zwanej wykładnikiem lub cechą (zakres) Zapis zmiennoprzecinkowy L = s x m x p c m mantysa (liczba ułamkowa), p - podstawa systemu, c - wykładnik potęgowy, czyli cecha (liczba całkowita) s znak liczby ( 1 lub -1)

Zapis zmiennoprzecinkowy Położenie przecinka w mantysie nie jest ustalone i może się dowolnie zmieniać. Poniższe zapisy oznaczają tę samą liczbę: 325 x 10 20 = 32,5 x 10 21 = 3,25 x 10 22 = 0,0325 x 10 24, itd. Zmiana położenia przecinka w mantysie wpływa na wartość cechy liczby. Przesunięcie przecinka o 1 pozycję w lewo wymaga zwiększenia cechy o 1. Przesunięcie przecinka o 1 pozycję w prawo wymaga zmniejszenia cechy o 1. Liczba zmiennoprzecinkowa - przykłady Przykład dla systemu dziesiętnego: 32.246 = 0.32246 10 2 0.000183 = 0.183 10 3 84239253.5 = 0.842392535 10 8

Wartość dziesiętna liczby zmiennoprzecinkowej Obliczyć wartość zmiennoprzecinkowej liczby trójkowej 2,21 x 10 21 (3). Najpierw obliczmy wartości poszczególnych składników liczby zmiennoprzecinkowej pamiętając, iż każdy z nich jest zapisany w systemie trójkowym: m = 2,21 (3) = 2 x 3 0 + 2 x 3-1 + 1 x 3-2 = 2 + 2 / 3 + 1 / 9 = 2 7 / 9 p = 10 (3) = 1 x 3 1 + 0 x 3 0 = 3 e = 21 (3) = 2 x 3 1 + 1 x 3 0 = 2 x 3 + 1 = 6 + 1 = 7 Teraz wykorzystujemy podany wzór do wyznaczenia wartości dziesiętnej tej liczby: L = m x p e = 2 7 / 9 x 3 7 = 25 / 9 x 3 7 = 6075 Znormalizowana liczba zmiennoprzecinkowa Ponieważ liczbę zmiennoprzecinkową można zapisywać w różny sposób, przyjęto tzw. postać znormalizowaną. Znormalizowana liczba zmiennoprzecinkowa to taka, w której mantysa spełnia nierówność: p > m 1 Według tej definicji postacią znormalizowaną dla zapisów: 325 x 10 20 = 32,5 x 10 21 = 3,25 x 10 22 = 0,0325 x 10 24 jest jedynie zapis 3,25 x 10 22.

Zmiennoprzecinkowe liczby binarne Liczby są kodowane w jednym słowie maszyny podzielonym na trzy części: znak liczby (zwykle 1 bit) jedna część (zwykle znacznie dłuższa) zawiera kod mantysy liczby i jej znak, druga część (kilkubitowa) - kod cechy liczby i jej znak. L = (-1) s x m 2 c s- bit znaku ( 0 oznacza znak +, 1 znak - ) m- znormalizowana liczba zapisana jako binarna liczba naturalna c wykładnik potęgi, czyli informacja o ile miejsc przesuwamy przecinek; może być dodatnia lub ujemna; jest zapisana w kodzie uzupełnień do 2. Zmiennoprzecinkowe liczby binarne Reprezentacja jest znormalizowana, tzn. bity mantysy są przesunięte tak, aby pierwsze miejsce po przecinku zajmował pierwszy znak 1 ciągu mantysy. (0.5) 10 mantysa < 1

Zmiennoprzecinkowe liczby binarne Ze względu na wygodę operowania na takich liczbach przyjmuje się ograniczony zakres na mantysę i cechę. Powoduje to, że liczba jest określana z pewną dokładnością i może występować w określonym zakresie. Błąd d zaokrąglenia Wystąpi wtedy, gdy część wartości liczby zostaje utracona w wyniku braku wystarczającej długości mantysy.

Format IEEE 754 Aby ujednolicić wyniki obliczeń numerycznych wykonywanych na różnych platformach sprzętowych, wprowadzono ściśle określony standard zapisu zmiennoprzecinkowego IEEE 754. Definiuje on dwie klasy liczb: 32 bitowe - pojedynczej precyzji (ang. single) 64 bitowe - podwójnej precyzji (ang. double) Format Bit znaku Bity cechy Bity mantysy 32 bity - pojedyncza precyzja 1 bit 8 bitów 23 bity 64 bity - pojedyncza precyzja 1 bit 11 bitów 52 bity Przykład Chcemy zapisać liczbę 1984.0415 w kodzie zmiennoprzecinkowym pojedynczej precyzji: Przeliczamy liczbę 1984.0415: 1984 = 111110000002 0,0415 = 0.000010101012 1984.0415 = 11111000000.00001010101 Dokonujemy normalizacji czyli przesuwamy przecinek tak, aby przed przecinkiem znajdowała się tylko jedna niezerowa cyfra. Wychodzi coś takiego: 1.111100000000001010101

Przykład Ostatecznie mantysę utworzą kolejne cyfry spisane od przecinka dotąd, dokąd zmieszczą się w przyjętej długości mantysy (u nas 23 bity). Gdybyśmy mięli mniej cyfr, niż jest potrzebne, mantysę uzupełnia się zerami z prawej strony. Czyli uzupełniamy 11111000000 do 23 bitów: 11110000000000000000000 Przykład Teraz zajmiemy się cechą. Pamiętamy, że przecinek przesunęliśmy o 10 miejsc w lewo. Jako cechę trzeba więc będzie zapisać liczbę 10 w kodzie U2. Ostatecznie cecha wygląda tak: c = (01010) U2 Mamy już wszystkie części liczby. 1984.0415 = 0 01010 1111000000