Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Stało- i zmiennopozycyjna reprezentacja liczb binarnych ʁ € ‽ ud3£k0 Urządzenia Techniki Komputerowej.

Podobne prezentacje


Prezentacja na temat: "Stało- i zmiennopozycyjna reprezentacja liczb binarnych ʁ € ‽ ud3£k0 Urządzenia Techniki Komputerowej."— Zapis prezentacji:

1 Stało- i zmiennopozycyjna reprezentacja liczb binarnych ʁ € ‽ ud3£k0 Urządzenia Techniki Komputerowej

2 Reprezentacja liczb w systemie komputerowym Reprezentacja liczb w systemie komputerowym polega na zamianie zbioru liczb rzeczywistych na odpowiadające im liczby binarne. –Chcąc zapisać liczby w systemie komputerowym musimy dokonać pewnego uproszczenia.

3 Reprezentacja liczb w systemie komputerowym Ile jest liczb rzeczywistych? Ile liczb zmieści się w pamięci komputera?

4 Odwzorowanie liczb w systemie komputerowym Chcąc zapisać liczby w systemie komputerowym musimy dokonać pewnego uproszczenia. Liczby rzeczywisteLiczby w komputerze R1R1 R2R2 R3R3 R4R4 R6R6 R7R7 R5R5 K1K1 K2K2 K3K3 K4K4 K5K5

5 Reprezentacja liczb całkowitych w komputerze liczby przechowywane są w pamięci lub w rejestrach procesora o ustalonej liczbie pól, np. 8 lub 16 Problemy –Problem przepełnienia - gdy liczba jest zbyt duża, by móc ją zapisać przy pomocy np. 8 bitów –Problem niedopełnienia - gdy liczba jest za mała, by ją zapisać przy pomocy np. 8 bitów –Jak zapisywać liczby ujemne? –Pewne liczby musimy pominąć – które i według jakiego algorytmu?

6 Reprezentacje liczb z częścią ułamkową Zapis stałoprzecinkowy Zapis zmiennoprzecinkowy

7 Binarna liczna stałoprzecinkowa Binarną liczbę stałoprzecinkową można potraktować jako złożenie dwóch części — liczby całkowitej oraz ułamkowej rozdzielonych przecinkiem: Część całkowitaCzęść ułamkowa ,0101

8 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 p n-1 … p 2 p 1 p 0, p -1 p -2 … p -m cyfry a n-1 … a 2 a 1 a 0, a -1 a -2 … a -m

9 Zamiana liczby rzeczywistej dziesiętnej na binarną Zamianę liczby dziesiętnej na postać binarną przeprowadza się w dwóch etapach: 1.zamiana liczby całkowitej na postać binarną za pomocą cyklicznego dzielenia przez 2; 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, przedzielają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.

10 Zamiana liczby dziesiętnej na binarną Przykład Zamieniamy liczbę 10,225 na liczbę binarną. 1.Podział liczby na cześć całkowitą i ułamkową Część całkowitaCzęść ułamkowa 10,225

11 2. Zamiana części całkowitej na binarną DzielnaDzielnikReszta z dzielenia 10: =

12 3. Zamiana części ułamkowej na binarną MnożnaMnożnikWynikCzęść całkowita 10,225*20,450 2 *20,90 3 *21,81 40,8*21,61 50,6*21,21 60,2*20,40 7 *20,80 8 *21,61 90,6*21,21 100,2*20,40 12

13 4. Połączenie liczb Uzyskane liczby binarne scalamy w jedną. Część całkowita Część ułamkowa 0,225 0, , ,

14 Ćwiczenie zamiana na postać binarną 1.25, , , , , , , , , , , , , , , , , , , ,393

15 Zamiana liczb binarnych na dziesiętne Chcąc zamienić liczbę binarną stałoprzecinkową na postać dziesiętną należy skorzystać z poniższego wzoru: a n-1 …a 1 a 0,a -1 …a -m =a n-1 *p n-1 +a 1 *p 1 +a 0 *p 0,a -1 *p -1+…+ a -m *p -m Wartości wag części ułamkowych przyjmują postać ułamków w których dokładność jest określona przez wagę najmłodszej cyfry

16 URZĄDZENIA TECHNIKI KOMPUTEROWEJ

17 Przykład Obliczyć wartość liczby dwójkowej 11101,011 B 11101,011 2 = 1 * * * * * * * * ,011 2 = 1 * 1/8 + 1 * 1/4 + 0 * 1/2 + 1 * * * * * ,011 2 = 1/8 + 1/ ,011 2 = 29 3/8 Zamiana liczb binarnych na dziesiętne

18 Przykład Zamienić ułamek 12.7 na postać binarną 8-bitową, gdzie przecinek jest po czterech bitach !!!!!!! Etap 1 Część całkowita 12 D to w postaci dwójkowej 1100 B. Etap 2 Obliczanie części ułamkowej wygląda następująco: 0.7 * 2 = 1.4 -> * 2 = 0.8 -> * 2 = 1.6 -> * 2 = 1.2 -> * 2 = ….. – tutaj przerywamy obliczenia i stąd 12.7 D = 1100,1011 B

19 Wady reprezentacji stałoprzecinkowej (Fixed Point Notation): 10-cyfrowy format: XXXXX.XXXXX Reprezentacja stałoprzecinkowa W przypadku liczb stałoprzecinkowych wystąpi duży błąd przy bardzo małych wartościach oraz bardzo dużych wartościach (w odniesieniu do powyższego formatu).

20 Liczby rzeczywiste Charakterystyka:  Liczby rzeczywiste mają cześć całkowitą i ułamkową  Nie można już przyjąć, że przecinek leży po prawej stronie (bo wtedy byśmy mieli tylko liczby całkowite) ani, że leży po lewej stronie (bo wtedy byśmy mieli tylko liczby ułamkowe)  Niezbyt „ekonomiczne” byłoby używanie kodowania w systemie stałoprzecinkowym (np. przecinek rozdziela dwa bajty) Co chcemy tak naprawdę uzyskać? System kodowania dla którego błąd względny będzie tego samego rzędu dla wszystkich wartości biorących udział w obliczeniach.

21 Skalowanie liczby Dostosowywanie skali liczby ułamkowej: i tak dalej... Możliwość wykonania działania z zastosowaniem wszystkich cyfr znaczących. Wynik jednak musi być dodatkowo pomnożony przez wykładniczy współczynnik korygujący.

22 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 [km], czyli 9,4608 * Masa elektronu wynosi m e = 0, [g], czyli 9,1095 x [g]

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

24 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 * b e, m - mantysa, b - podstawa systemu, e - wykładnik potęgowy.

25

26

27 e = 1(-2 3 )+1*2 2 +1*2 1 +1*2 0 = = -1 Liczymy cechę! 1111

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

29 m = -1,75 e = -1 cecha mantysa L FP = m*2 e L FP = -1,75 * 2 -1 = -1,75 * ½ = -1,75 * 0,5 = - 0,875

30 Zadanie - ćwiczenie Oblicz wartość liczby B B B B e = 0*(-2 3 ) + 0* * *2 0 = = 1 M 01,00 m = 0*(-2 1 ) + 1* * *2 -2 = =1 L FP = 1*2 1 =2

31 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: 56 D = B = U2 - 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

32 ,000 U2 = U ,000 U2 = U2 - przesuwamy cyfry mantysy w prawo, zwiększamy wykładnik 01110,000 U2 = U2 0111,000 U2 = U2 011,100 U2 = U2 01,110 U2 = U2 0,111 U2 = U2 - kończymy, mantysa jest znormalizowana Otrzymujemy więc: e = 0110 = 6 D m = 0,111 = 7/8, sprawdzamy: 7/8 x 2 6 = 448/8 = 56

33 Dla liczby 9 D 9 D = 1001 B = U ,000 U2 = U2 0100,100 U2 = U2 010,010 U2 = U2 01,001 U2 = U2 - ostatnia jedynka zaraz zniknie!!! 0,100 U2 = U2 - koniec Otrzymaliśmy wynik: e = 0100 = 4 D m = 0,100 = 1/2, sprawdzamy: 1/2 * 2 4 = 16/2 = 8 9 D =? ZP

34 System zmiennoprzecinkowy Metoda: Kodowanie w systemie zmiennoprzecinkowym zwanym też cecha-mantysa  umożliwia zapis liczb rzeczywistych z ustalonym błędem względnym  system oparty na podziale liczby na cześć ułamkową zwaną mantysą oraz na wykładnik potęgi podstawy systemu zwany cechą  opracowany na podstawie zapisu liczby w systemie pozycyjnym wagowym

35 Zmiennoprzecinkowa (Floating Point Notation) reprezentacja liczby dziesiętnej: M – mantysa, liczba ułamkowa ze znakiem, przedstawiona w jednym z trzech kodów ZM, ZU1, ZU2, W – wykładnik lub cecha, liczba całkowita ze znakiem przedstawiona również w jednym z trzech kodów (nie koniecznie tym samym co M), p – wspólna podstawa kodów zastosowanych do zapisu słów M i W, d – liczba naturalna (zwykle równa 1). Reprezentacja zmiennoprzecinkowa

36 Liczba zmiennoprzecinkowa jest znormalizowana, jeśli mantysa spełnia warunek: Podczas czynności normalizacji następuje odpowiednie przesunięcie pozycji kropki dziesiętnej („przecinka”), co uzasadnia nazwanie tej notacji zmiennoprzecinkową. W przypadku liczb dwójkowych odbywa się to poprzez przesunięcie cyfr znaczących w prawo lub w lewo, w zależności od tego czy przecinek należy przesunąć w kierunku liczb małych, czy też dużych. Normalizacja liczby zmiennoprzecinkowej

37 Liczby zmiennoprzecinkowe w praktyce Metodyka dostosowywania liczby zmiennoprzecinkowej: Przykład: Przyjęto jednobajtowe słowo dwójkowe M i W w kodzie ZU2. Zadanie: Przedstawienie liczby dziesiętnej L = w dwójkowym zapisie zmiennoprzecinkowym, znormalizowanym. 1.Przekształcenie liczby L na liczbę dwójkową w kodzie ZU2: 2.Normalizacja poprzez przesunięcie przecinka dziesiętnego (warunek – poprzedni slajd): 3.Stosując 8-bitowy kod ZU2 dla słów mantysy i wykładnika otrzymujemy dwójkowy zapis zmiennoprzecinkowy: 4.Sprawdzenie: Wirtualne kropki

38 Standard IEEE 754 Pojedyncza precyzja: mantysa 23 bity, wykładnik 8 bitów (nadmiar 127), znak 1 bit Mantysa jest znormalizowana do zmniejszonej podstawy wykładnika (kodowanie w formacie U1) SEEEEEEEEMMMMMMMMMMMMMMMMMMMMMMM WykładnikMantysa Znak Wartość: 1/4 1/16 1/64 itd. 1/2 23 1/2 1/8 1/32 itd bit bajt 1bajt 2bajt 3bajt 4

39 Standard IEEE 754 Procedura zapisu: 1)Określamy znak: Bit31= 1 jeżeli liczba ujemna, 0 jeżeli dodatnia 2)Szukamy największej liczby postaci 2 w mniejszej niż liczba 3)Zapisujemy wykładnik = w + nadmiar 4)Dzielimy liczbę przez 2 w (wynik będzie miał postać 1.xxxx) 5)Odejmujemy 1 i szukamy mantysy 6)Zaznaczamy bit jako 1 jeżeli po odjęciu 1/(2 (23-bit) ) (dla pojedynczej precyzji) mamy wartość nieujemną. Jeżeli otrzymamy wartość ujemną, zaznaczamy bit jako 0 i ignorujemy tę operację. Procedurę powtarzamy aż w wyniku odejmowania otrzymamy 0 lub dojdziemy do bitu nr 0. Jedynka wiodąca Konwerter z liczby dziesiętnej na dwójkową w standardzie IEEE 754

40 Standard IEEE 754 Przykład: (zapisujemy liczbę 14.5)(nadmiar 127) 1)Liczba jest dodatnia  Bit31 = 0 2)Największa liczba 2 w mniejsza niż 14.5 to 2 3 = 8  w = 3 3)Zapisujemy wykładnik = w = 130  )14.5/2 3 = )odejmujemy 1 i otrzymujemy /2= bit22 = /4= bit21 = /8= bit20 = 0 ignorujemy operację /16= 0.0 bit19 = 1 Pozostałe bity mantysy = znak wykładnikmantysa

41 Standard IEEE 754 Pojedyncza precyzja: mantysa 23 bity, wykładnik 8 bitów, znak 1 bit, nadmiar 2 8 /2 - 1 = 127 Podwójna precyzja: mantysa 52 bity, wykładnik 11 bitów, znak 1 bit, nadmiar 2 11 /2 - 1 = 1023 Rozszerzona podwójna precyzja: mantysa 64 bity, wykładnik 15 bitów (nadmiar 2 64 /2 - 1 = 16383), znak 1 bit

42 Standard IEEE 754 Precyzja jest określana przez liczbę miejsc po przecinku, czyli jest określana przez mantysę. Najmniejsza wartość możliwa do zapisania w mantysie Pojedyncza precyzja: Mantysa ma 23 bity 1/2 23 ≈ 1.2*  7 cyfr po przecinku Podwójna precyzja Mantysa ma 52 bity 1/2 52 ≈ 2.2*  cyfr po przecinku Rozszerzona podwójna precyzja Mantysa ma 64 bity 1/2 64 ≈ 5.4*  19 cyfr po przecinku

43 Znaki i teksty  Teksty składają się ze znaków  Podstawą zapisu jest jeden bajt  1 bajt przyjmuje 256 różnych wartości  Ważną cechą kodowania jest jednoznaczność: przyjęcie pewnego sposobu kodowania powinno być powszechne: ASCII: 0 – 127 standardowe, 128 – 256 zależne od kraju Znaki specjalne0-31 Spacja32 Cyfry48 – 57 Wielkie litery65 – 90 Małe litery Pozostałe kody: Kropka, przecinek, itd… 33-47, 58-64, 91-96, Np. Litera W: kod binarny 87 Kod znakuZnak ASCII (American Standard Code for Information Interchange)

44 Kody UNICODE 256 znaków alfanumerycznych jakie można zakodować za pomocą rozszerzonego kodu ASCII nie dawało możliwości zakodowania znaków diakrytycznych wielu języków np. polskiego. Odpowiedzią jest kod nazwany UNICODE o długości 16 bitów dla każdego znaku. Daje to możliwość zakodowania 2 16, czyli znaków.


Pobierz ppt "Stało- i zmiennopozycyjna reprezentacja liczb binarnych ʁ € ‽ ud3£k0 Urządzenia Techniki Komputerowej."

Podobne prezentacje


Reklamy Google