4F Reprezentacje1

background image

4W0




Reprezentacje danych cyfrowych i ich skutki



Stałoprzecinkowe reprezentacje binarne

Zmiennoprzecinkowe reprezentacje binarne

Zakres dynamiki, skutki skończonej długości słowa



























background image

4W1

System dziesiętny

)

10

8

10

5

10

4

10

2

10

1

(

8

5

,

4

2

1

2

1

0

1

2

)

2

(

)

1

(

)

0

(

)

1

(

)

2

(

= ± (100 + 20 + 4 + 0,5 + 0,08) = ± 124,58


Liczba rzeczywista (wymierna) zapisana w systemie dziesiętnym,

o wartości sto dwadzieścia cztery i pięćdziesiąt osiem setnych

1 2 4

nie znakowana

liczba całkowita - unsigned integer

1 2 4

zn

akowana liczba całkowita - signed integer

0 , 5 8

ułamek dziesiętny

- decimal fraction

124,58

stałoprzecinkowa reprezentacja dziesiętna

12458

10

-2

zmiennoprzecinkowa reprezentacja dziesiętna



System binarny
Podstawą systemu jest liczba 2.

Dwie cyfry binarne (bity

) 0 i 1, którym odpowiadają logiczne stany 0 i 1,

(BIT

Binary digIT)

(7)(6)(5)(4)(3)(2)(1)(0)
0 1 1 1 1 1 0 0 b = 0

2

7

+ 1

2

6

+ 1

2

5

+ 1

2

4

+ 1

2

3

+ 1

2

2

+ 0

2

1

+ 0

2

0

=

= 64 + 32 + 16 + 8 + 4 = 124 d



8-

bitowa liczba binarna reprezentująca liczbę całkowitą 124

w notacji unsigned integer

Numer pozycji wagowej

Pun

kt dziesiętny

Notacja znak-

moduł

Numer pozycji wagowej

Punkt binarny

Notacja unsigned integer

Systemy liczbowe

background image

4W2

n

bitów słowa binarnego

liczba możliwych wzorców bitowych, czyli

liczba reprezentowanych wartości

2

n

.

Ośmiobitowe słowo binarne może reprezentować różnych wartości

2

8

= 256

Zakres reprezentacji zależy od przyjętej notacji. Dla unsigned integer

od

0 0 0 0 0 0 0 0 b = 0

do

1 1 1 1 1 1 1 1 b = 2

8

-1 = 255


System heksadecymalny (szesnastkowy)

P

odstawą systemu jest liczba 16.

Liczba
D

0

1

2

3

4

5

6

7

8

9

10 11 12 13 14 15

Cyfra
H

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

(3) (2) (1) (0)

0 F 0 A 6 h = 15

16

3

+ 0

16

2

+ 10

16

1

+ 6

16

0

= 4096 + 10 + 6 = 5012 d

Przykładowa liczba heksadecymalna i jej wartość dziesiętna

(1) (0)

0x 7 C = 7

16

1

+ C

16

0

= 112 + 12 = 124 d

Reprezentacja heksadecymalna liczby całkowitej 124


Podstawowe reprezentacje binarne liczb:

stałoprzecinkowa (stałopozycyjna) (fixed point);

zmiennoprzecinkowa (zmiennopozycyjna) (floating point).

Stałoprzecinkowy format zapisu - położenie punktu dziesiętnego jest stałe
i jednoznaczne. Stała liczba pozycji zapisu reprezentuje część całkowitą i
część ułamkową.

Zmienne programowe typu Integer

mają format stałoprzecinkowy.

Zmiennoprzecinkowy format zapisu -

położenie punktu dziesiętnego jest

zmienne. Zmienna liczba pozycji zapisu reprezentuje część całkowitą i
część ułamkową.

Zmienne programowe typu Real Number

mają format zmiennoprzecinkowy.

Numer pozycji wagowej

background image

4W3

Stałoprzecinkowa reprezentacja binarna liczby 124,58

16-

bitowa liczba binarna z częścią całkowitą i ułamkową, reprezentująca wartość dziesiętną 124,58

nr bitu w słowie

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

nr pozycji wagowej

7

6

5

4

3

2

1

0 .

-1

-2

-3

-4

-5

-6

-7

-8

wartość bitu

2

7

2

6

2

5

2

4

2

3

2

2

2

1

2

0

2

-1

2

-2

2

-3

2

-4

2

-5

2

-6

2

-7

2

-8

wartość dziesiętna bitu

128

64

32

16

8

4

2

1

0,5

0,25

0,12

5

0,06

25

0,03

12..

0,01

56..

0,00

78..

0,00

39..

liczba binarna

0

1

1

1

1

1

0

0

1

0

0

1

0

1

0

0







0 1111100 10010100 b = + (1

2

6

+ 1

2

5

+ 1

2

4

+1

2

3

+1

2

2

+1

2

-1

+1

2

-4

+1

2

-6

) =

= + (64 + 32 + 16 + 8 + 4 + 0,5 + 0,0625 + 0,015625) = + 124,578125 d

0 1111100 10010101 b = 124,578125 + 1

2

-8

= 124,578125 + 0,00390625 = 124,58203125 d

Liczba binarna zapisana w formacie Q8

, co oznacza że ułamek reprezentowany jest na ośmiu bitach.

Q

Quantity of fractional bits – pojemność bitów ułamka

umowny punkt

binarny

bity cz. całkowitej

bity cz. ułamkowej

background image

4W4

Stosowane notacje binarne

Notacja signed integer

Zapis typu

moduł-znak (sign and magnitude) liczb całkowitych.

Najstarszy bit liczby MSB (The Most Significant Bit

MSB) jest bitem

znaku, pozostałe bity reprezentują wartość liczby

MSB=0 oznacza li

czbę dodatnią;

MSB=1 oznacza liczbę ujemną.


Liczba 124 w notacji signed magnitude wygl

ąda analogiczne jak w notacji

unsigned integer

(s)(6)(5)(4)(3)(2)(1)(0)

0 1 1 1 1 1 0 0 b = + (1

2

6

+ 1

2

5

+ 1

2

4

+ 1

2

3

+ 1

2

2

+ 0

2

1

+ 0

2

0

) =

= + (64 + 32 + 16 + 8 + 4) = + 124 d

8-

bitowa liczba binarna reprezentująca liczbę całkowitą +124

w notacji signed integer

Liczba (-

)124 reprezentowana jest następująco

(s)(6)(5)(4)(3)(2)(1)(0)

1 1 1 1 1 1 0 0 b = - (1

2

6

+ 1

2

5

+ 1

2

4

+ 1

2

3

+ 1

2

2

+ 0

2

1

+ 0

2

0

) =

= - (64 + 32 + 16 + 8 + 4) = -124 d

8-

bitowa liczba binarna reprezentująca liczbę całkowitą -124

w notacji signed integer



Największa i najmniejsza liczba reprezentowana przez 8-bitową liczbę
binarną w kodzie znak-moduł (signed integer)

0 111 1111 b = + (2

7

– 1) = + 127 d

1 111 1111 b = - (2

7

– 1) = - 127 d

numer pozycji wagowej

bit znaku

bit znaku

Siedem bitów do zapisu
wartości liczby

background image

4W5

Dla porównania w przypadku zapisu unsigned integer

1111 1111 b = (2

8

– 1) = 255 d

0000 0000 b = 0 d


Reprezentowane zakresy przy 16-bitowej liczbie binarnej

od - (2

15

– 1) = - 32767 do (2

15

– 1) = + 32767

sign-magnitude

od 0 do (2

16

– 1) = 65535

unsigned integer



Notacja

uzupełnienie do dwóch (two’s complement)

MSB=0 liczba dodatnia

- zapis identyczny jak poprzednio

MSB=1 liczba ujemna

-

różnica w zapisie



(s7)(6)(5)(4)(3)(2)(1)(0)

1 1 1 1 1 1 1 0 b = -1

2

7

+ 1

2

6

+ 1

2

5

+ 1

2

4

+ 1

2

3

+ 1

2

2

+ 1

2

1

+ 0

2

0

=

= -128 + 64 + 32 + 16 + 8 + 4 + 2 = -2 d

8-

bitowa liczba binarna reprezentująca liczbę całkowitą -2

w notacji two’s complement




Konwersja liczby binarnej do kodu U2:

sign-magnitude

unsigned integer


zeruj bit znaku

odwróć wartość bitów

dodaj 1


liczba w kodzie U2



numer pozycji wagowej

bit znaku

background image

4W6

Przykład konwersji liczby -124 do notacji uzupełnienie do dwóch

1 1 1 1 1 1 0 0

-124 w notacji znak-

moduł

1 0 0 0 0 0 1 1

po

zerowaniu bitu znaku i odwróceniu bitów

+ 1

1 0 0 0 0 1 0 0 b = -1

2

7

+ 1

2

2

= -128 + 4 = - 124 d


-

124 w notacji uzupełnienia do dwóch

8-

bitowa liczba binarna reprezentująca liczbę całkowitą -124

w notacji two’s complement



Warto

ść liczby w notacji unsigned integer


1 0 0 0 0 1 0 0 b = 1

2

7

+ 1

2

2

= 128 + 4 = 132 d = 256 - 124


uzupełnienie liczby 124, w notacji U2, do 2

n

.


Zakres reprezentacji dla 8-bitowe

go słowa binarnego w kodzie two’s

complement

0 111 1111 b = + (2

7

– 1)= + 127 d

1 000 0000 b = - 1

2

7

= - 128 d

Dla 16-

bitowego słowa

od: (- 1

2

15

) = - 32768 d

do: + (2

15

– 1)= + 32767 d


Notacja

przesunięcia binarnego (offset binary).

Notacja podobna do unsigned integer

, z tym, że wartości reprezentowane

p

rzez liczby binarne są przesunięte, co pozwala na przedstawianie liczb

dodatnich i ujemnych, bez stosowania bitu znaku.

Np. 8 bitów może reprezentować 256 wartości, od 0 do 255.

Jeśli przypiszemy 128-y wzór bitowy do wartości 0, to możemy

reprezentować wartości z zakresu od -127 do +128.

background image

4W7

Zestawienie reprezentacji liczb w podstawowych notacjach binarnych,

na przykładzie

4-

bitowego słowa oraz zakres reprezentacji dla 16 bitów




Przydatność poszczególnych typów notacji w operacjach arytmetycznych

unsigned integer

nie przydatna, brak znaku liczby


signed integer

mało przydatna, utrudnia realizację operacji


(+) 0 0 0 0 0 0 1 1 3

(+) 0 0 0 0 0 0 1 1 3

(+) 0 0 0 0 0 0 1 0 + 2

(-) 1 0 0 0 0 0 1 0 - 2

(+) 0 0 0 0 0 1 0 1 = 5

(-) 1 0 0 0 0 1 0 1 = - 5

?

Dodawanie i odejmowanie liczb binarnych w kodzie znak-

moduł.


background image

4W8

two’s complement

bardzo przydatna

, ułatwia realizację operacji

(+) 0 0 0 0 0 0 1 1 3

(-) 1 1 1 1 1 1 0 1 - 3

(-) 1 1 1 1 1 1 1 0 - 2

(-) 1 1 1 1 1 1 1 0 - 2

1 (+) 0 0 0 0 0 0 0 1 = 1

1 (-) 1 1 1 1 1 0 1 1 = - 5


Przykład dodawania dwóch liczb 8-bitowych w notacji U2


Uwaga!

Dodawanie i odejmowanie 8-bitowej liczby 15 i 4-bitowej liczby 3.





Przykład dodawania i odejmowania dwóch liczb o różnej długości, w notacji U2


B

łąd można wyeliminować poprzez operację rozszerzenia znakowego

liczby 4-b

itowej do 8 bitów







Poprawny wynik odejmowania po operacji rozszerzenia znakowego










przeniesienie pomijane

przeniesienie pomijane

L D

L B

+15

0 0

0

0

1

1 1

1

-3

1

1 0

1

= 28

?

0 0

0

1

1

1 0

0

L D

L B

+15

0 0 0 0 1 1 1 1

+3

0 0 1 1

= 18

0 0 0 1 0 0 1 0

L D

+15

-

0

0

0

0

1 1

1

1

-3

1

1

1

1

1 1

0

1

= +12 1 0

0

0

0

1 1

0

0

bit przeniesienia pomijany

background image

4W9

S

tałoprzecinkowe reprezentacje binarne w systemach DSP

Najczęściej stosowane formaty (przy 16-bitowym słowie binarnym):

Q0

liczba binarna reprezentuje wartość całkowitą, czyli jest
binarną liczbą całkowitą;

Q15

liczba binarna reprezentuje ułamek, czyli jest ułamkiem
binarnym.

Format Q0 -

domyślne położenie punktu binarnego po prawej stronie

liczby, przed bitem 0.

Format Q15 -

domyślne położenie punktu binarnego po lewej stronie

liczby pomiędzy bitem B14 i B15. Bit B15 - znak liczby.

Wartość dziesiętna reprezentowana przez liczbę - W

d

W

d

=

całkowita wartość binarna

q

Współczynnik skalowania q dla formatów Q0 i Q15:

Q0

q = 1 ;

Q15

q =

15

15

1

2

2

1

2

1

n

Przykład 8-bitowego słowa binarnego w formacie Q0 i Q7, o takim samym
wzorcu bitowym, i reprezentowane liczby dziesiętne

(7)(6)(5)(4)(3)(2)(1)(0)

0 1 1 1 0 0 0 0 b = 1

2

6

+ 1

2

5

+ 1

2

4

= 64 + 32 + 16 = 112 d


(7) (6) (5) (4) (3) (2) (1) (0)

( 0)(-1)(-2)(-3)(-4)(-5)(-6)(-7)

0 1 1 1 0 0 0 0 b =

Wartość reprezentowana przez liczbę binarną w formacie Q0 i Q7

n -

ilość bitów słowa

binarnego

Q0

q = 1

Numer pozycji wagowej

Punkt binarny

Przesunięcie punktu binarnego

Numer pozycji wagowej w formacie Q0

Q7

q = 2

-7

Numer pozycji wagowej w formacie Q7

Punkt binarny

7

4

7

5

7

6

2

2

1

2

2

1

2

2

1

112

q

d

875

,

0

125

,

0

25

,

0

5

,

0

2

1

2

1

2

1

3

2

1

background image

4W10

Format Q15

zakres dynamiczny procesora

różnica pomiędzy największą i najmniejszą liczbą jaką może

reprezentować.

Jeśli występuje ograniczenie zakresu dynamicznego, to operacje
arytmetyczn

e mogą powodować przepełnienie;

Przepełnienie występuje wtedy, gdy liczba uzyskana w wyniku operacji
arytmetycznej wymaga zbyt dużo bitów do reprezentacji jej wartości, w
stosunku do możliwości reprezentacyjnych w rejestrach sprzętowych.

 Dla procesor

ów 16-bitowych zakres dynamiczny, przy zapisie liczb

w kodzie

uzupełnienia do dwóch, wynosi od -32768 do 32767;

 Pojedyncze

mnożenie liczb całkowitych 200x300=60000 daje

przepełnienie;

 S

ystemy DSP są wrażliwe na przepełnienia ze względu na ciągłe

wykonywani

e operacji mnożenia i dodawania;

 K

onieczne jest stosowanie zabezpieczeń. Mogą one polegać na:

każdorazowym sprawdzaniu wystąpienia przepełnienia po
wykonaniu operacji arytmetycznej;

zapewnieniu odpowiedniego zakresu wejściowego i wyjściowego
liczb podczas operacji.

Jeśli ograniczy się zakres reprezentowanych liczb, przeskaluje
liczby wejściowe do zakresu +1 do -1
, czyli wykonuje się operacje
na ułamkach, to mnożenie nie spowoduje nigdy przepełnienia;

 O

peracja dodawania może powodować przepełnienia.



Współczynnik skalowania q liczby całkowitej w formacie Q15 na wartość
dziesiętną, inaczej rozdzielczość ułamka, jest równy

q

= 2

-15

= 30,518

10

-6

B15 znak

Bity B14 – B0

Liczba binarna w formacie Q15

Stosowana notacja

uzupełnienie do dwóch

punkt binarny

background image

4W11

Sk

alowanie liczb według wzoru

liczba całkowita Q15 = ułamek dziesiętny

1/

q

=

ułamek dziesiętny

2

15

ułamek dziesiętny = liczba całkowita Q15

q

=

liczba całk. Q15

2

-15


Zakres dynamiczny procesora w formacie Q15

Lmax Q15 = 32767

wartość dziesiętna 0,999;

Lmin Q15 = -32768

wartość dziesiętna -1,000;


Przykład reprezentacji ułamków (+ 0,75) i (- 0,75) w formacie Q15.

liczba całkowita Q15 = 0,75

2

15

= 0,75

32768 = 24576 = 2

14

+ 2

13


Reprezentacja ułamka (+0,75) przez liczbę binarną w formacie Q15

(15)(14)(13)(12)..............(3)(2)(1)(0)

0 1 1 0 ............ 0 0 0 0 b = q

24576 = q

(2

14

+ 2

13

) = 2

-15

(2

14

+ 2

13

) =

= 2

-1

+ 2

-2

= 0,5 + 0,25 = 0,75 d

Reprezentacja ułamka (-0,75) wymaga przestawienia liczby (-24576)
w notacji

uzupełnienia do dwóch

(15)(14)(13)(12)..............(3)(2)(1)(0)

1 0 0 1 ............ 1 1 1 1

+ 1

1 0 1 0 ............ 0 0 0 0 b = q

(-24576) = q

(-2

15

+ 2

13

) =

= 2

-15

(-2

15

+ 2

13

) = -2

0

+ 2

-2

= -1 + 0,25 = -0,75 d

Podstawy operacji w formacie Q15

1. Utrzymanie liczb w zakresie od -1 do 1;

2. Utrzymanie tego samego formatu wszystkich liczb, tak aby

przecinek obu operandów występował w tym samym miejscu.



Wyk

onywanie działań arytmetycznych:

Skalowanie operandów do formatu Q15

Wykonanie operacji

Skalowanie powrotne

background image

4W12

Przykład prowadzenia operacji w formacie Q15:

Dodawanie dwóch liczb

0,5 + 0,05 = 0,55

16384 + 1638 = 18022

18022/32768 = 0,55


Odejmowanie dwóch liczb

0,5 - 0,05 = 0,45

16384 + 1638 = 14746

14746/32768 = 0,45


Mnożenie

(0,5

0,45) + (0,5

0,45) 1

2

(0,5

0,45) =

(0,2

0,5

0,45)

10

2



Wykonanie mnożenia 2

0,5

0,45

0,5

0,45 = 0,225

16384

14746 = 241 582 080

241 582 080/32768 = 7373

0,225 + 0,225 = 0,45

7373 + 7373 = 14746

14746/32768 = 0,45

Podczas mnożenia dwóch skalowanych liczb ulega mnożeniu

również współczynnik skalowania.

Należy dwukrotnie wykonać skalowanie powrotne.

Mnożenie możemy zapisać symbolicznie

C = (A

2

15

)

(B

2

15

) = A

B

2

30

C = (A

Qx)

(B

Qy) = A

B

Q(x+y)

Wynik mnożenia nie jest w formacie Q15 ale Q30.

 W

ynik jest zapisany na 32 bitach to znaczy, że przecinek jest

pomiędzy bitem 29 a 30.

Aby powrócić do formatu Q15 możemy:

1.

pomnożyć wynik przez 2

-15

, tzn. przesunąć w prawo o 15 bitów,

wówczas prawidłowy rezultat mnożenia mamy w dolnych 16
bitach wyniku;

2.

pomnożyć jeszcze przez 2

1

, uzyskując format Q31. W tym

przypadku prawidłowy rezultat jest umieszczony w górnych 16
bitach wyniku.

Dwa sposoby
ochrony przed
przepełnieniem

background image

4W13

Zmiennoprzecinkowe reprezentacje binarne (floating point)

Podziału słowa binarnego na dwie części:

mantysę M (mantissa) i wykładnik E (exponent).

Wartość zmiennoprzecinkowej liczby dwójkowej V jest wyrażona poprzez

V = M

2

E


Standard IEE 754-1985

Liczba pojedynczej precyzji w standardzie IEE 745

Wartość zmiennoprzecinkowej liczby binarnej zapisanej w tym standardzie

V = (-1)

S

M

2

(E-127)


Bit znaku S=0 oznacza liczbę dodatnią,

S=1 oznacza liczbę ujemną.

Wykładnik jest w notacji przesunięcia binarnego (offset binary - 127).
Zakres wykładnika

E = 0

wykładnik = -127

E = 255

wykładnik = +128

Mantysa jest ułamkiem binarnym w reprezentacji znak-moduł (sign-magnitude),
przy czym bit znaku mantysy jest przesunięty na początek słowa binarnego.

Liczby zmiennopozycyjne są normalizowane
Przyjmuje się, że po lewej stronie przecinka binarnego występuje tylko jedna
cyfra niezerowa, czyli 1, którą pomija się w reprezentacji.
Pominięty bit mantysy nosi nazwę bitu ukrytego i reprezentuje wartość 2

0

= 1.


Wartość mantysy wynosi

M = 1 + b22

2

-1

+ b21

2

-2

+ b20

2

-3

+ b19

2

-4

+ ... + b0

2

-23

Wszystkie bity mantysy są równe 0, to przyjmuje ona wartość 1.

Wszystkie bity są równe 1, to przyjmuje ona wartość bliską 2

(1+(1-2

-23

)).

background image

4W14

Przykład zmiennoprzecinkowych reprezentacji binarnych

Największa liczba jaka może być reprezentowana

(2 – 2

-23

)

2

128

=

6,8

10

38

Najmniejsza liczba reprezentowana

1,0

2

-127

=

5,9

10

-39

Standard IEE redukuje zakres reprezentowanych liczb i definiuje 3 specjalne
klasy liczb. Zakres reprezentacji wg standardu

od

1,2

10

-38

do

3,4

10

38

Specjalne klasy liczb:

1.

0 jest zdefiniowane jako wszystkie bity mantysy i wykładnika równe 0;

2.

jest zdefiniowane jako wszystkie bity mantysy równe 0,

wykładnika równe 1

3. grupa bardzo małych liczb nienormalizowanych pomiędzy

1,2

10

-38

i

1,4

10

-45

te małe liczby uzyskuje się przez odrzucenie wymagań, że pierwsza cyfra
w mantysie jest jedynką.

Te trzy specjalne klasy liczb, zwykle oznacza się jako NANs (Not A Numbers)

64-bitowa liczba podwójnej precyzji w standardzie IEE745:

bity 0 do 51 - mantysa, bity 52 do 62 exponent, bit 63 to znak.

Rzeczywisty zakres reprezentowanych liczb podwójnej precyzji określony w
standardzie

od

2,2

10

-308

do

1,8

10

308

+ 1,75

2

(7-127)

= + 1,316554

10

-36

- 1,375

2

(129-127)

= - 5,500000


Wyszukiwarka

Podobne podstrony:
4F Reprezentacje2
10 0 Reprezentacja Binarna
10 Reprezentacja liczb w systemie komputerowymid 11082 ppt
Algorytmy i struktury danych Wykład 1 Reprezentacja informacji w komputerze
01 reprezentacja danychid 2917
02 poznawcza reprezentacje 2009 2010 st2
Reprezentacja
XII. ZASADa reprezentacji politycznej PRAWo WYBORCZE, Studia
Notatki z wykładów, Prawo Konstytucyjne - Wykład 10, 11 - Partie Polityczne, DEMOKRACJA POŚREDNIA (r
pkt 9, Psychologia narracyjna - narracyjne konstruowanie poznawczej reprezentacji rzeczywistości, me
Sysetemy szsnastkowy i inne, Systemy bianrny,dziesietny,szesnastkowy, Reprezentacje liczb
spr3sprawozdanie z DTM w VSD, DEFINICJA I REPREZENTACJA
Reprezentacja cyfrowa analogowa informacji
Formy reprezentacji umysłowych, psych
pomiary cw 4f
sprawdzian z reprezentacji liczb gr A
PZPR reprezentował na pogrzebie Stalina Bierut

więcej podobnych podstron