Taki kod z umieszczonym na sta e przecinkiem to kod sta oprzecinkowy albo sta opozycyjny. Kod ten ma jednak wiele wad:

Podobne dokumenty
Podstawy Informatyki

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

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

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

Liczby zmiennoprzecinkowe

Pracownia Komputerowa wykład VI

Pracownia Komputerowa wyk ad VI

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

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

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

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

1.1. Pozycyjne systemy liczbowe

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

LICZBY ZMIENNOPRZECINKOWE

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Adam Korzeniewski p Katedra Systemów Multimedialnych

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

Adam Korzeniewski p Katedra Systemów Multimedialnych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Kod U2 Opracował: Andrzej Nowak

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

Arytmetyka binarna - wykład 6

Naturalny kod binarny (NKB)

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

Podstawy Informatyki

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

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

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 =

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

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

Pracownia Komputerowa wyk ad V

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

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

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

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

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

Pracownia Komputerowa wyk ad IV

Kodowanie informacji. Kody liczbowe

Techniki multimedialne

Zapis liczb binarnych ze znakiem

Pozycyjny system liczbowy

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

LICZBY ZMIENNOPRZECINKOWE

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

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

Systemy zapisu liczb.

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

Operatory AND, OR, NOT, XOR Opracował: Andrzej Nowak Bibliografia:

SYSTEMY LICZBOWE 275,538 =

Technologie Informacyjne

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

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

Arytmetyka liczb binarnych

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

Architektura komputerów

Stan wysoki (H) i stan niski (L)

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

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

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

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

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

Architektura komputerów

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

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Temat 7. Dekodery, enkodery

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

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

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

Planowanie adresacji IP dla przedsibiorstwa.

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

Pracownia Komputerowa wykład IV

1. Reprezentacja danych w komputerze

Program do konwersji obrazu na cig zero-jedynkowy

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

MNOŻENIE W SYSTEMACH UZUPEŁNIENIOWYCH PEŁNYCH (algorytm uniwersalny)

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

architektura komputerów w. 2

Podstawy informatyki (2)

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

ARYTMETYKA MODULARNA. Grzegorz Szkibiel. Wiosna 2014/15

Architektura systemów komputerowych

Standardy danych w tagu EPC

Liczby zmiennopozycyjne. Kody Hamminga.

Programowanie Niskopoziomowe

Architektura systemów komputerowych Laboratorium 13 Symulator SMS32 Operacje na bitach

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

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

L6.1 Systemy liczenia stosowane w informatyce

Teoretyczne Podstawy Informatyki

Podstawy Informatyki Maszyna Turinga

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

Podstawy Informatyki dla Nauczyciela

Różności w C++ Marek Pudełko

2018 Marcin Kukliński. Niesforne bity i bajty

ZADANIE 1. Rozwiązanie:

WST P DO TEORII INFORMACJI I KODOWANIA. Grzegorz Szkibiel. Wiosna 2013/14

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

Transkrypt:

Zapis staopozyyjny W oblizeniah zahodzi zasami potrzeba posenia si lizbami posiadajymi z amkow. Wród takih lizb wyróniamy takie, które posiadaj skozon ilo miejs po przeinku lub rozwinieie okresowe (lizby wymierne) oraz takie, które posiadaj rozwiniia nieskozone nieokresowe (lizby niewymierne). W przypadku takih lizb komputer musi ywa przybli, a ih dokadno zaley od iloi miejs po przeinku. Zapisuj lizb rzezywist, piszemy np. tak: 90,625. Kilka yfr tworzy normaln z akowit lizby, dalej wystpuje przeinek ( w programowaniu kropka ), za po nim kolejne yfry, które tworz z uamkow. W kodzie binarnym lizb t zapisujemy jako 0000,0. Inny przykad pokazuje lizb 6 bitow:, 255 255 255 255,99609375 28 64 Gdyby zapisywa lizby w taki sam sposób, byoby moliwe bezporednie przehowywanie ih w pamii komputera. Pewna ilo bitów byaby uznawana za yfry dwójkowe przed przeinkiem, a pozostae bity za yfry po przeinku. Taki kod z umieszzonym na stae przeinkiem to kod staoprzeinkowy albo staopozyyjny. Kod ten ma jednak wiele wad: 32 may zakres lizb moliwyh do zakodowania maa dokadno (preyzja) zi uamkowej trudny do oszaowania bd oblize. Z tyh powodów zapis staopozyyjny nie jest uywany dla lizb rzezywistyh. Zapis zmiennopozyyjny 6 4 2 W wielu dziedzinah lizby zapisuje si w notaji naukowej jest lizba akowit. Na przykad: 245,236 =,245236 0 3 ; 0,00236 = 2,36 0-3. m, gdzie ;0 L 0 m za W takim zapisie mamy dwie lizby: m lizba znormalizowana i, która mówi o ile miejs naley przesun przeinek. Sposób ten jest zsto uywany do zapisu lizb bardzo duyh

lub bardzo mayh. Np. zamiast 690 000 000 000 mona napisa króej 6,9 0 0,000 000 000 000 034 piszemy 3,4 0 -. lub zamiast Z powodu zmiany poenia przeinka, kod ten nazywamy kodem zmiennoprzeinkowym lub zmiennopozyyjnym i oznazamy FP2. Metoda ta znalaza równie zastosowanie w informatye i jest uywana do zapisu lizb rzezywistyh w wersji binarnej. Wzór bdzie podobny do poprzedniego: L m 2 z. Parametr m (mantysa) i (eha) maj takie samo znazenie jak wzeniej, za z oznaza bit znaku (0 zyli + lub zyli - ). Kodowanie w FP2 Do lizby zapisanej w kodzie FP2 zawsze trzeba poda, ile bitów zajtyh jest przez mantys, a ile przez eh. Oto budowa przykadowego 6-bitowego kodu FP2: znak Ceha mantysa bit 5 4 3 2 0 9 8 7 6 5 4 3 2 0 wag a z -6 8 4 2 2-2 -2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-0 Jako przykad zapisz lizb 984,045 w kodzie FP2 o budowie przedstawionej w powyszej tabele. W tym elu wykonujemy nastpuje kroki: Ustalamy znak. Lizba jest dodatnia, wi z= 0; Gdyby bya ujemna, wartoi bitu byoby, dalej rozpatrywalibymy ju lizb przeiwn zyli pozbawion tego minusa (dodatni). Zapisujemy t lizb w normalnym systemie binarnym. Jako doelow lizb bitów mantysy przyjmujemy o jeden wiej, ni moe przehowa. 984 : 2 0 0,045 2 0 992 : 2 0 0,083 2 0 496 : 2 0 0,66 2 0 248 : 2 0 0,332 2 0 24 : 2 0 0,664 2 62 : 2 0 0,328 2 0 3 : 2 0,656 2

5 : 2 0,32 2 0 7 : 2 0,624 2 3 : 2 0,248 2 0 : 2 0,496 2 0 Przy zamianie zi uamkowej ostatni bit zosta zaokrglony do. Po oblizeniah nasza lizba ma posta: 984,045 000000,0000000. Dokonujemy normalizaji zyli przesuwamy przeinek tak, aby przed przeinkiem znajdowaa si tylko jedna niezerowa yfra. Otrzymujemy:,0000000000000 Jedyn moliw niezerow yfr w systemie dwójkowym jest. Skoro przed przeinkiem zawsze stoi pojedynza jedynka, moemy zapamita, e ona tam jest i oszzdzi jednego bitu nie zapisuj jej. Ostateznie mantys utworz kolejne yfry spisane od przeinka dotd, dokd zmieszz si w przyjtej dugoi mantysy (u nas 0 bitów). Gdybymy mili mniej yfr, ni jest potrzebne, mantys uzupenia si zerami z prawej strony. Czyli mantysa ma warto m = 000000 Teraz mona zaj si my si eh. Poniewa przeinek przesunlimy o 0 miejs w lewo, wi jako eh trzeba bdzie zapisa lizb 0 w kodzie U2, który w naszym przykadzie bdzie skada si z piiu bitów. Trzeba odróni ujemn warto ehy od ujemnej wartoi mantysy. Tutaj obydwie te lizby s dodatnie, ale równie dobrze mogyby by ujemne. Ujemna mantysa oznaza, e kodowana lizba jest ujemna. Ujemna eha oznaza, e podzas normalizowania przesuwamy przeinek w prawo. W naszym wypadku eha wyglda tak: (0) 0 = (000) U2. znak Ceha Mantysa bit 5 4 3 2 0 9 8 7 6 5 4 3 2 0 waga z -6 8 4 2 2-2 -2 2-3 2-4 2-5 2-6 2-7 2-8 2-9 2-0 lizba 0 0 0 0 0 0 0 0 0 0 Jak wida, mantys zapisuje si w postai lizby naturalnej i osobnego bitu znaku, a eh za pomo kodu uzupenie U2. Co wiej, na shemaie budowy

kodu FP2 wida, e znak mantysy jest od samej mantysy oddzielony eh. Mamy ju wszystkie zi lizby. Zapisujemy j w tabele: Nasza lizba ma posta: 984,045 = (0 000 000000) FP2 Dekodowanie Jako przykad rozkodujemy otrzyman lizb. Pamitaj, o znazeniu kadej grupy bitów, rozpatrujemy poszzególne elementy: z = 0, a wi mamy: (-) 0 ; m = 000000, zyli mamy: 2 - + 2-2 + 2-3 + 2-4 ; = (000) U2 = 0, a wi mamy 2 0 ; Zgodnie ze wzorem L m 2 z, otrzymujemy L=(-) 0 (2 0 +2 - +2-2 +2-3 +2-4 ) 2 0. Pogrubiony skadnik 2 0 odpowiada jedyne przed przeinkiem, któr zapamitalimy i nie zapisalimy w zakodowanej lizbie, oszzdzaj jeden bit. Po wymnoeniu zawartoi nawiasu przez 2 0 i pominiiu lizby (-) 0 = otrzymujemy: L = 2 0 + 2 9 + 2 8 + 2 7 + 2 6 = 024 + 52 + + 28 + 64 = 984. Otrzymany wynik nie jest identyzny jest z lizb 984,045, która mielimy na poztku. d w oblizeniah powsta podzas zaokrglenia przy zamianie zi uamkowej na kod binarny. Preyzja lizby zaley te od iloi znaków przeznazonyh na mantys, a zakres lizby od iloi znaków przeznazonyh na eh. Dlatego, aby kodowanie byo bardziej preyzyjne do zapisu lizb zmiennopozyyjnyh uywane s kody 32, 64, nawet 80-bitowe. Lizby 32-bitowe oferuj zakres od,5 0-25 do 3,4 0 38 po stronie dodatniej i podobny zakres po stronie ujemnej. W jzykah C++ i Java lizby o tym zakresie maj nazw float, w Delphi single, za w starszyh wersjah Pasala real. Lizby te s okrelane jako lizby o pojedynzej preyzji. Lizby 64-bitowe, zarówno po stronie ujemnej, jak i dodatniej posiadaj zakres od 5,0 0-324 do,7 0 308. S nazywane s jako lizby o podwójnej preyzji i w wikszoi jzyków (C++, Java, Delphi) okrelane nazwa double. Lizby 80-bitowe nazywane s long double (C++) lub exetendend (Delphi). Maj one zakres wartoi dodatnih i ujemnyh od 3,4 0-4932 do, 0 4932. Standard kodu FP2 przewiduje dodatkowo wartoi spejalne:

Maksymalna warto ehy przy zerowej wartoi mantysy daje w zalenoi od bitu znaku mantysy warto zwan INF lub +INF (oznazaj odpowiednio - i +). Maksymalna warto ehy przy jakiejkolwiek niezerowej wartoi mantysy to tzw. NaN ( Not a Number), zyli warto, która nie jest poprawn lizb.