10 Reprezentacja liczb w systemie komputerowymid 11082 ppt

background image

Stało- i zmiennopozycyjna

reprezentacja liczb

binarnych

₥@ʁ€₭ ‽ud3£k0

Urządzenia Techniki Komputerowej

background image

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.

background image

Reprezentacja liczb w

systemie komputerowym

• Ile jest liczb rzeczywistych?

• Ile liczb zmieści się w pamięci

komputera?

background image

Odwzorowanie liczb w

systemie komputerowym

• Chcąc zapisać liczby w systemie komputerowym

musimy dokonać pewnego uproszczenia.

Liczby
rzeczywiste

Liczby w komputerze

R

1

R

2

R

3

R

4

R

6

R

7

R

5

K

1

K

2

K

3

K

4

K

5

background image

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?

background image

Reprezentacje liczb z

częścią ułamkową

• Zapis stałoprzecinkowy
• Zapis zmiennoprzecinkowy

background image

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łkowita Część ułamkowa

10110011, 0101

background image

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

background image

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.

background image

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łkowita Część ułamkowa

10, 225

background image

2. Zamiana części całkowitej

na binarną

Dzieln
a

Dzielni
k

Reszta z
dzielenia

10

:2

0

5

:2

1

2

:2

0

1

:2

1

0

10

10

=1010

2

11

background image

3. Zamiana części ułamkowej

na binarną

Mnożn

a

Mnożni

k

Wyni

k

Część całkowita

1 0,225

*2

0,45

0

2 0,45

*2

0,9

0

3 0,9

*2

1,8

1

4 0,8

*2

1,6

1

5 0,6

*2

1,2

1

6 0,2

*2

0,4

0

7 0,4

*2

0,8

0

8 0,8

*2

1,6

1

9 0,6

*2

1,2

1

1

0

0,2

*2

0,4

0

12

background image

4. Połączenie liczb

• Uzyskane liczby binarne scalamy w jedną.

Część całkowita

10

1010

Część ułamkowa

0,225
0,0011100110

10,225

1010, 0011100110

background image

Ćwiczenie

zamiana na postać binarną

1. 25,34
2. 56,95
3. 18,77
4. 21,88
5. 32,65
6. 55,55
7. 11,85
8. 34,42
9. 44,21
10.49,39

11.

15,344

12.

53,953

13.

16,771

14.

31,886

15.

42,657

16.

45,558

17.

41,853

18.

54,425

19.

24,219

20.

39,393

background image

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

background image

URZĄDZENIA TECHNIKI KOMPUTEROWEJ

background image

Przykład

Obliczyć wartość liczby dwójkowej 11101,011

B

11101,011

2

= 1 * 2

-3

+ 1 * 2

-2

+ 0 * 2

-1

+ 1 * 2

0

+ 0 *

2

1

+ 1 * 2

2

+ 1 * 2

3

+ 1 * 2

4

11101,011

2

= 1 * 1/8 + 1 * 1/4 + 0 * 1/2 + 1 * 1 + 0 *

2 + 1 * 4 + 1 * 8 + 1 * 16

11101,011

2

  = 1/8 + 1/4 + 1 + 4 + 8 + 16

11101,011

2

= 29 3/8

Zamiana liczb binarnych na

dziesiętne

background image

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

D

= 1100,1011

B

background image

• Wady reprezentacji stałoprzecinkowej (

Fixed

Point Notation

):

• 10-cyfrowy format: XXXXX.XXXXX

Reprezentacja

stałoprzecinkowa

47567.31

A

0.000075244

B

{

obcięte

0.000075244

00000.00007

B

47567.31000

A

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

background image

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.

background image

Skalowanie liczby

• Dostosowywanie skali liczby ułamkowej:

0.000075244

B

4

0.75244 10

B

5

7.5244 10

B

i tak
dalej ...

47567.31

A

47567.31 0.75244 0.0001

A B

 

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.

background image

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

12

.

Masa elektronu wynosi m

e

=

0,00000000000000000000000000091095
[g], czyli  9,1095 x 10

-28

[g]

background image

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.

background image

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.

background image
background image
background image

1111 1001

e = 1(-2

3

)+1*2

2

+1*2

1

+1*2

0

=

-8 +4 +2 +1 = -1

Liczymy cechę!

1111

background image

1111 1001

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

-1

+1*2

-2

=

-2 +0 +0 +1/4 = -2+1/4 = -1

¾ = -1,75

10,01

background image

1111 1001

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

background image

Zadanie - ćwiczenie

Oblicz wartość liczby
1. 00010101

B

2. 01010110

B

3. 00011100

B

4. 10110101

B

e = 0*(-2

3

) + 0*2

2

+ 0*2

1

+ 1*2

0

= 0 + 0 +0+ 1 = 1

M 01,00 m = 0*(-2

1

) + 1*2

0

+ 0*2

-1

+0*2

-2

= 0+1+0+0=1

L

FP

= 1*2

1

=2

background image

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

= 111000

B

= 0111000

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

background image

0111000,000

U2

=2

0000U2

011100,000

U2

=2

0001U2

- przesuwamy cyfry mantysy

w prawo, zwiększamy wykładnik

01110,000

U2

=2

0010U2

0111,000

U2

=2

0011U2

011,100

U2

=2

0100U2

01,110

U2

=2

0101U2

0,111

U2

=2

0110U2

- 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

background image

Dla liczby 9

D

9

D

= 1001

B

= 01001

U2

01001,000

U2

=2

0000U2

0100,100

U2

=2

0001U2

010,010

U2

=2

0010U2

01,001

U2

=2

0011U2

- ostatnia jedynka zaraz zniknie!!!

0,100

U2

=2

0100U2

- koniec

Otrzymaliśmy wynik:

e = 0100  = 4

D

m = 0,100 = 1/2, sprawdzamy: 1/2 * 2

4

= 16/2 = 8

9

D

=? 01000100

ZP

background image

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

background image

• 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

 

 

dL W

L L M W

L M

p

o

background image

• 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

 

1

d

p

L M

background image

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 = -4.25 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:

 

2

1.011.11

ZU L

3

1.01111 2

L L

1.01111000.0000011

M

W

M W

o

1 4 2 43 1 4 2 43

 

 

1

5

3

3

2

2

2

0.53125 2

4.25

L W

L M

p



 

 

W

ir

tu

a

ln

e

k

ro

p

k

i

background image

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)

S E E E E E E E E MMMMMMMMMMMMMMMMMMMMMMM

Wykładnik

Mantysa

Z

n

a

k

Wartość: 1/4 1/16 1/64 itd.
1/2

23

1/2 1/8 1/32 itd..

0

22

23

31

bit

bajt 1

bajt 2

bajt 3

bajt 4

background image

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

background image

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 = 127 + w = 130  10000010
4) 14.5/2

3

= 1.8125

5) odejmujemy 1 i otrzymujemy 0.8125

0.8125-1/2=0.3125

bit22 = 1

0.3125-1/4=0.0625

bit21 = 1

0.0625-1/8= -0.0625

bit20 = 0

ignorujemy operację

0.0625-1/16= 0.0

bit19 = 1

Pozostałe bity mantysy = 0

010000010110100000000000000
00000

znak

wykładni
k

mantysa

background image

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

background image

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

-7

 7 cyfr po przecinku

Podwójna precyzja

• Mantysa ma 52 bity 1/2

52

≈ 2.2* 10

-16

 15-16 cyfr po

przecinku

Rozszerzona podwójna precyzja

• Mantysa ma 64 bity 1/2

64

≈ 5.4* 10

-20

 19 cyfr po przecinku

background image

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 specjalne

0-31

Spacja

32

Cyfry

48 – 57

Wielkie litery

65 – 90

Małe litery

97 - 122

Pozostałe kody:
Kropka, przecinek,
itd…

33-47, 58-64, 91-
96, 123-127

Np.

Litera W: 01010111
kod binarny 87

Kod
znaku

Znak

ASCII (American Standard Code for
Information Interchange
)

W

87

background image

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 65536 znaków.


Document Outline


Wyszukiwarka

Podobne podstrony:
wyklad 2012 10 25 (Struktury systemów komputerowych)
2(45) Inżynieria systemów komputerowychid 21043 ppt
wyklad 2012 10 25 (Struktury systemów komputerowych)
Sysetemy szsnastkowy i inne, Systemy bianrny,dziesietny,szesnastkowy, Reprezentacje liczb
04 Stało i zmiennopozycyjna reprezentacja liczb binarnychid 4895 ppt
10 System komputerowy, rodzaje, Nieznany
systemy liczb, Systemy operacyjne i sieci komputerowe, Egzamin technik informatyk
Konwersja liczb, Nauka, architektura systemów komputerowych, architektura systemów komputerowych
Architektura systemów komputerowych 10
3. Zapis liczb na komputerze (20.10.08), ZAPIS LICZB W KOMPUTERZE
Architektura systemów komputerowych ppt
04 Stało i zmiennopozycyjna reprezentacja liczb binarnychid 4895 ppt
10 Metody otrzymywania zwierzat transgenicznychid 10950 ppt
09 Architektura systemow rozproszonychid 8084 ppt
10 0 Reprezentacja Binarna
10 Relacja wspomagaj cy i wspomaganyid 11081 ppt
10 RYZYKO PRZĘDZIĘBIORSTWA I JEGO POMIARid 10630 ppt
1 Systematyka rehabilitacjiid 9891 ppt

więcej podobnych podstron