UTK, Stało i zmiennopozycyjna reprezentacja liczb ułamkowych, Stało i zmiennopozycyjna reprezentacja liczb ułamkowych


Stało i zmiennopozycyjna reprezentacja liczb ułamkowych

Stałopozycyjna reprezentacja liczb

Stałopozycyjna reprezentacja liczb pozwala na zapisanie liczby ułamkowej i wykonywanie na niej wielu obliczeń w taki sposób, jakby to była liczba całkowita. W praktyce przyjmuje się założenie, że w zwykłej n-bitowej liczbie całkowitej część bitów określa cyfry przed przecinkiem, a pozostałą część cyfr jest za przecinkiem. Przecinek jest na stałej pozycji w liczbie. O tym podziale musi pamiętać programista, gdyż z punktu widzenia procesora są to zwykłe liczby całkowite. Zamiast przecinka, paczki bitów rozdziela się najczęściej dodatkowym odstępem.

Jako przykład można rozważyć liczbę 8-mio bitową. W kodzie NKB pozwala ona na zapisanie wartości od 0 do 255. Jeżeli jednak przyjmie się założenie, że np. przecinek jest pośrodku za czterema bitami to pozwoli to na zapisanie liczby od 0 do 15,9375 z dokładnością 0,0625. Zakresy te wynikają z innych wartości cyfr składających się na liczbę binarną.

Zamiana ułamka w postaci binarnej na wartość dziesiętną

Metoda zamiany jest dokładnie taka sama jak w przypadku liczb całkowitych, tylko wartości cyfr są inne a co za tym idzie, inne są wykładniki potęg dwójki. Tutaj także liczby 2 podnosi się do liczby określającej pozycję cyfry, tylko że ta pozycja jest numerowana zaczynając od cyfry przed przecinkiem. Dla cyfr za przecinkiem wykładniki potęgi są ujemne.

Przykład - Obliczyć wartość dziesiętną liczby 0110 1010(2)

0110 1010(2) = 0*23 + 1*22 + 1*21 + 0*20 + 1*2-1 + 0*2-2 + 1*2-3 + 0*2-4 = 4 + 2 + 0,5 + 0,125 = 6,625(10)

Zamiana ułamka dziesiętnego na wartość binarną

Metoda zamiany jest dwuetapowa. Najpierw zamieniana jest część całkowita ułamka. Wtedy stosuje się cykliczne dzielenie przez 2 i sprawdzanie reszty z dzielenia. Następnie zamienia się część ułamkową. Zamiana polega na cyklicznym mnożeniu ułamka razy 2 i sprawdzaniu, czy wynik nie jest większy lub równy 1. Jeżeli jest >= 1 to wyznaczony bit części ułamkowej jest także równy jeden. Do dalszych obliczeń bierze się część ułamkową wyniku.

Czasem zamiana części ułamkowej na postać binarną prowadzi do osiągnięcia nieskończenie długiej kombinacji zer i jedynek. Dlatego zawsze należy przyjąć dodatkowy warunek - ile bitów jest przeznaczone na zapis części ułamkowej. Obliczenia wykonuje się wtedy dotąd, aż osiągnie się potrzebną liczbę bitów

Przykład - Zamienić ułamek 12,7 na postać binarną 8-bitową, gdzie przecinek jest po czterech bitach (4b,4b).

Część całkowita 12(10) to w postaci dwójkowej 1100(NKB). Obliczanie części ułamkowej wygląda następująco:

0,7*2=1,4

1 (MSB)

0,4*2=0,8

0

0,8*2=1,6

1

0,6*2=1,2

1 (LSB)

0,2*2=...

...

Obliczenia przerywa się po uzyskaniu wymaganych 4 bitów. Bit wyznaczony na początku obliczeń jest najbardziej znaczący. Dlatego wynikiem tych obliczeń jest 1011(2). Całość można zapisać następująco: 12,7(10) = 1100 1011(NKB). I należy tutaj pamiętać, że ta równość jest zachowana z pewnym przybliżeniem, gdyż ograniczono się jedynie do 4 bitów w części ułamkowej wprowadzając tym samym niewielki błąd zaokrąglenia liczby.

Liczby ujemne a system stałopozycyjny

Obsługa ułamków w kodzie U2 jest dokładnie taka sama jak w przypadku liczb całkowitych. Pierwszy bit w liczbie decyduje o tym, czy liczba jest ujemna.

Zamiana z kodu U2 na system dziesiętny polega więc na zwykłym zsumowaniu wartości cyfr z uwzględnieniem innej numeracji ich pozycji. Trzeba tylko pamiętać o tym, że pierwszy bit ma ujemną wartość.

Zamiana z ujemnego ułamka dziesiętnego na kod U2 też jest analogiczna do konwersji liczb całkowitych. Najlepiej najpierw zamienić na kod U2 wartość dodatnią a później dokonać negacji i dodać 1 do bitu na ostatniej pozycji.

Zmiennopozycyjna postać zapisu liczb ułamkowych

Zmiennopozycyjne ułamki są obsługiwane sprzętowo przez koprocesor matematyczny i co za tym idzie, są najczęściej wykorzystywane przez programistów (większy zakres liczb, najczęściej większa dokładność przy sensownej szybkości). Ze względu na trudność zagadnień związanych z tym zapisem, ich znajomość nie będzie wymagana na zajęciach, choć może być konieczna na maturze z informatyki. Tutaj zostaną jedynie zasygnalizowane pewne właściwości tych liczb.

Zapis ten charakteryzuje się zmienną pozycją przecinka co pozwala na zapisywanie liczb o różnych rzędów wielkości takich jak np. -43538200000000 czy też 0,0000000231436. W praktyce stosowana jest notacja naukowa (wykładnicza), która w przypadku powyższych liczb będzie wyglądać następująco: -4,35382*1013 oraz 2,31436*10-8. I właśnie w taki sposób zapisywane są liczby zmiennopozycyjne w komputerze. Jedyna różnica polega na tym, że tam stosuje się system dwójkowy i ogólna postać liczby wygląda następująco: m*2c.

"m" to mantysa i jest to ułamek w kodzie U2 zawierający informację o znaczących cyfrach liczby. W komputerze ułamek ten najczęściej jest zapisywany w ten sposób, że przed przecinkiem jest tylko bit znaku a reszta bitów tworzy część ułamkową. Warto zauważyć, że w systemie dziesiętnym liczba pi może być przedstawiona tak: 0,31415*101 albo tak: 0,00314*103. Pierwszy przypadek pozwala na dokładniejsze zapamiętanie liczby (jest więcej tzw. cyfr znaczących w części ułamkowej. Taka zmiana zapisu ułamka, która pozwoli na napisanie większej ilości cyfr znaczących określana jest mianem normalizacji i jest wykonywana w systemie dwójkowym automatycznie przez koprocesor matematyczny.

"c" to cecha i jako wykładnik potęgi jest liczbą całkowitą w kodzie U2. O ile mantysa określa cyfry znaczące liczby, o tyle cecha decyduje o jej rzędzie wielkości (jak bardzo duża, lub mała jest ta liczba).

Liczba zmiennopozycyjna jest zapisywana jako słowo n-bitowe składające się z dwóch paczek bitów - cechy i mantysy. Z punktu widzenia programisty nie jest istotna konstrukcja takiego słowa. Powinien on jedynie zdawać sobie sprawę z dokładności i zakresu liczb, jakie mogą zostać zapisane za pomocą takiego typu danych.



Wyszukiwarka

Podobne podstrony:
04 Stało i zmiennopozycyjna reprezentacja liczb binarnychid 4895 ppt
04 Stało i zmiennopozycyjna reprezentacja liczb binarnychid 4895 ppt
Reprezentacja zmiennopozycyjna liczb w komputerze
003 zmienne systemowe
Badanie korelacji zmiennych
prąd zmienny malej czestotliwosci (2)
10 Reprezentacja liczb w systemie komputerowymid 11082 ppt
FiR Zmienne losowe1
4 operacje na zmiennych I
Wyklad 2 zmiennosc standaryzacja 5 III 2014 b
Zmienne 2
ćw 5 analiza współzależności zmiennych
Liczby zmiennoprzecinkowe
4 6 Różniczki funkcji dwóch zmiennych
5 Rachunek różniczkowy funkcji jednej zmiennej
MPiS cw 04 zmienne losowe
4 pochodna funkcji jednej zmiennej
Pomiary w obwodach pradu zmiennego II
zmienna statyczna

więcej podobnych podstron