1 / 20

Stało- i zmiennopozycyjna reprezentacja liczb binarnych

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

cargan
Télécharger la présentation

Stało- i zmiennopozycyjna reprezentacja liczb binarnych

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 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:

  3. URZĄDZENIA TECHNIKI KOMPUTEROWEJ

  4. 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.

  5. URZĄDZENIA TECHNIKI KOMPUTEROWEJ Przykład 10,225 czy wynik nie jest większy lub równy 1

  6. URZĄDZENIA TECHNIKI KOMPUTEROWEJ Przykład 10,225 czy wynik nie jest większy lub równy 1

  7. URZĄDZENIA TECHNIKI KOMPUTEROWEJ Przykład Obliczyć 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

  8. 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

  9. 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]

  10. 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.

  11. 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.

  12. 1111 1001 Liczymy cechę! 1111 e = 1(-23)+1*22+1*21+1*20 = -8 +4 +2 +1 = -1

  13. 1111 1001 Liczymy mantysę! 1001 – dzielimy na dwie części 10,01 traktujemy jak liczbę stałoprzecinkową z przedziału 1,2 10,01 m = 1(-21)+0*20+0*2-1+1*2-2 = -2 +0 +0 +1/4 = -2+1/4 = -1 ¾ = -1,75

  14. 1111 1001 cecha mantysa e = -1 m = -1,75 LFP = m*2e LFP = -1,75 * 2-1 = -1,75 * ½ = -1,75 * 0,5 = - 0,875

  15. 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

  16. Zadanie do samodzielnej analizy Obliczanie reprezentacji zmiennoprzecinkowej Mamy 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.

  17. 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  = 6Dm = 0,111 = 7/8, sprawdzamy: 7/8 x 26 = 448/8 = 56

  18. 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  = 4Dm = 0,100 = 1/2, sprawdzamy: 1/2 * 24 = 16/2 = 8 9D =? 01000100ZP

More Related