Stało- i zmiennopozycyjna reprezentacja liczb binarnych

20
Stało- i zmiennopozycyjna reprezentacja liczb binarnych URZĄDZENIA TECHNIKI KOMPUTEROWEJ

description

URZĄDZENIA TECHNIKI KOMPUTEROWEJ. Stało- i zmiennopozycyjna reprezentacja liczb binarnych. Zapis stałoprzecinkowy. - PowerPoint PPT Presentation

Transcript of Stało- i zmiennopozycyjna reprezentacja liczb binarnych

Page 1: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

Stało- i zmiennopozycyjna reprezentacja liczb binarnych

URZĄDZENIA TECHNIKI KOMPUTEROWEJ

Page 2: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

Zapis stałoprzecinkowy

Aby umożliwić również zapis liczb ułamkowych, musimy rozszerzyć wagi pozycji w stronę ujemnych potęg podstawy. Część ułamkową oddzielimy od części całkowitej zapisu za pomocą znaku przecinka.

waga pn-1 … p2p1p0 , p-1p-2 … p-m

cyfry an-1 … a2a1a0 , a-1a-2 … a-m

Binarną liczbę stałoprzecinkową można potraktować jako złożenie dwóch części — liczby całkowitej oraz ułamkowej rozdzielonych przecinkiem:

Page 3: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

URZĄDZENIA TECHNIKI KOMPUTEROWEJ

Page 4: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

URZĄDZENIA TECHNIKI KOMPUTEROWEJ

Zamianę liczby dziesiętnej na postać binarną przeprowadza się w dwóch etapach:•zamiana liczby całkowitej na postać binarną za pomocą cyklicznego dzielenia przez 2;•zamiana części ułamkowej na postać binarną za pomocą cyklicznego mnożenia przez 2. Jeżeli wynik jest > 1, to wyznaczony bit części ułamkowej jest także równy 1. Do dalszych obliczeń wykorzystujemy część ułamkową wyniku.

Proces należy kontynuować aż do otrzymania 0. Z wyników iloczynów pobieramy wartości całkowite — ułamek liczby binarnej. Otrzymane liczby łączymy, przedzie lając część całkowitą i ułamkową przecinkiem. Jeżeli mnożenie przez 2 prowadzi do osiągnięcia nieskończenie długiej kombinacji zer i jedynek, należy przyjąć przybliżoną dokładność, np. do 10 miejsc po przecinku.

Page 5: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

URZĄDZENIA TECHNIKI KOMPUTEROWEJ

Przykład

10,225

czy wynik nie jest większy lub równy 1

Page 6: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

URZĄDZENIA TECHNIKI KOMPUTEROWEJ

Przykład

10,225

czy wynik nie jest większy lub równy 1

Page 7: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

PrzykładObliczyć wartość liczby dwójkowej 11101,011B

11101,011B = 1 * 2-3 + 1 * 2-2 + 0 * 2-1 + 1 * 20 + 0 * 21 + 1 * 22 + 1 * 23 + 1 * 24

11101,011B = 1 * 1/8 + 1 * 1/4 + 0 * 1/2 + 1 * 1 + 0 * 2 + 1 * 4 + 1 * 8 + 1 * 16

11101,011B  = 1/8 + 1/4 + 1 + 4 + 8 + 16

11101,011B = 29 3/8

URZĄDZENIA TECHNIKI KOMPUTEROWEJ

Page 8: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

Przykład

Zamienić ułamek 12.7 na postać binarną 8-bitową, gdzie przecinek jest po czterech bitach !!!!!!!

Etap 1

Część całkowita 12D to w postaci dwójkowej 1100B.

Etap 2

Obliczanie części ułamkowej wygląda następująco:

0.7 * 2 = 1.4 -> 1

0.4 * 2 = 0.8 -> 0

0.8 * 2 = 1.6 -> 1

0.6 * 2 = 1.2 -> 1

0.2 * 2 = ….. – tutaj przerywamy obliczenia

i stąd 12.7D = 1100,1011B

Page 9: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

Zapis zmiennopozycyjny

Z zapisem zmiennoprzecinkowym można spotkać się w przypadkach, gdzie przy jego pomocy przedstawia się albo bardzo duże wartości, albo bardzo małe. Zapis ten nazywa się często notacją naukową, np.:

Gwiazda Proxima Centauri znajduje się w odległości 9460800000000 [km], czyli 9,4608 * 1012.

Masa elektronu wynosi me = 0,00000000000000000000000000091095 [g], czyli  9,1095 x 10-28 [g]

Page 10: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

1.4.2. Liczby zmiennoprzecinkowe (zmiennopozycyjne)

W porównaniu z liczbami stałoprzecinkowymi liczby zmiennoprzecinkowe (ang. floating-point numbers — FP) umożliwiają obsługę większego zakresu liczb (bardzo małych lub bardzo dużych), jednak kosztem wolniejszego przetwarzania i mniejszej dokładności. Termin „zmiennoprzecinkowe" oznacza, że nie istnieje stała liczba cyfr przed przecinkiem i po przecinku.

Page 11: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

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 oraz z podstawy podniesionej do pewnej potęgi zwanej wykładnikiem lub cechą. Wartość liczby jest równa iloczynowi części stałoprzecinkowej i wykładniczej:

w = m * be,m - mantysa, b - podstawa systemu, e - wykładnik potęgowy.

Page 12: Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Page 13: Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Page 14: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

1111 1001

e = 1(-23)+1*22+1*21+1*20 = -8 +4 +2 +1 = -1

Liczymy cechę! 1111

Page 15: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

1111 1001

Liczymy mantysę! 1001 – dzielimy na dwie części 10,01 traktujemy jak liczbę stałoprzecinkową z przedziału 1,2

m = 1(-21)+0*20+0*2-1+1*2-2 = -2 +0 +0 +1/4 = -2+1/4 = -1 ¾ = -1,75

10,01

Page 16: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

1111 1001

m = -1,75e = -1

cecha mantysa

LFP = m*2e

LFP = -1,75 * 2-1

= -1,75 * ½

= -1,75 * 0,5

= - 0,875

Page 17: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

Zadanie - ćwiczenie

Oblicz wartość liczby 00010100B

e = 0*(-23) + 0*22 + 0*21 + 1*20 = 0 + 0 +0+ 1 = 1

M 01,00 m = 0*(-21) + 1*20 + 0*2-1 +0*2-2 = 0+1+0+0=1

LFP = 1*21=2

Page 18: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

Obliczanie reprezentacji zmiennoprzecinkowejMamy określony format zapisu liczby zmiennoprzecinkowej w

systemie dwójkowym. Wiemy, że wykładnik ma zawierać n - bitów w kodzie U2, a cecha m bitów w zapisie stałoprzecinkowym U2.

Przykład prostego systemu zmiennoprzecinkowego, w którym wykładnik i cecha mają po 4 bity długości. Przykładową liczbą niech będzie wartość 56:

56D = 111000B = 0111000U2 - dodajemy zero, aby zaznaczyć, iż jest to liczba dodatnia.

Zapiszemy wzór obliczeniowy, a następnie będziemy przesuwać w prawo cyfry mantysy dodając jednocześnie 1 do wykładnika, aż znacząca jedynka znajdzie się na pozycji o wadze 1/2.

Zadanie do samodzielnej analizy

Page 19: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

0111000,000U2 =20000U2

011100,000U2 =20001U2 - przesuwamy cyfry mantysy w prawo,

zwiększamy wykładnik

01110,000U2 =20010U2

0111,000U2 =20011U2

011,100U2 =20100U2

01,110U2 =20101U2

0,111U2 =20110U2 - kończymy, mantysa jest

znormalizowana

Otrzymujemy więc:

e = 0110  = 6D

m = 0,111 = 7/8, sprawdzamy: 7/8 x 26 = 448/8 = 56

Page 20: Stało- i zmiennopozycyjna reprezentacja liczb binarnych

Dla liczby 9D

9D = 1001B = 01001U2

01001,000U2 =20000U2

0100,100U2 =20001U2

010,010U2 =20010U2

01,001U2 =20011U2 - ostatnia jedynka zaraz zniknie!!!

0,100U2 =20100U2 - koniec

Otrzymaliśmy wynik:

e = 0100  = 4D

m = 0,100 = 1/2, sprawdzamy: 1/2 * 24 = 16/2 = 8

9D =? 01000100ZP