Pracownia komputerowa - fuw.edu.pldward/pk/pk2_wyk6.pdf · Liczby i znaki w zapisie binarnym...

21
Pracownia komputerowa Dariusz Wardecki, wyk.VI

Transcript of Pracownia komputerowa - fuw.edu.pldward/pk/pk2_wyk6.pdf · Liczby i znaki w zapisie binarnym...

Pracownia komputerowa

Dariusz Wardecki, wyk. VI

PowtórzenieIle wynoszą poniższe liczby w systemie dwójkowym/

dziesiętnym?

63 = ?

1001101 = ? 77!!

111111

Arytmetyka w reprezentacji bezznakowej

Mnożenie liczb w systemie dwójkowym

a b c

0 0 0

1 0 0

0 1 0

1 1 1

1100!* 1011!

——————!10000100

Arytmetyka w reprezentacji bezznakowej

Dzielenie liczb w systemie dwójkowym!

101 ! —————!

1010! 10!

—————!0010!

10! ————! 0010!

10

1010:10

Własności reprezentacji bezznakowej

• Tylko liczby całkowite nieujemne

• Naturalna arytmetyka

• Możliwość wystąpienia przepełnienia (ang. overflow) przy dodawaniu

• Problem z odejmowaniem liczby większej od mniejszej

Liczby całkowite ujemne

Propozycja:

00111001 (+57)! + 10001101 (-13)!

----------!

00111001 (+57)! + 10001101 (-13)!

----------!11000110 (-69)

Liczby całkowite ujemne

Propozycja:

00111001 (+57)! + 10001101 (-13)!

----------!

00001110 (+14)! + 1xxxxxxx (-14)!

----------!00000000 ( 0)

Reprezentacja uzupełnień do 2

Uzupełnieniem dwójkowym liczby x zapisanej za pomocą n bitów nazywamy liczbę:

xu2 = 2n � x

Przykłady

x = 0101, xu2 = 24 � 0101 = 10000� 0101 = 1011

x = 1011, xu2 = 24 � 1011 = 10000� 1011 = 0101

Liczby całkowite ujemne

Rozwiązanie:

00111001 (+57)! + 10001101 (-13)!

----------!

00001110 (+14)! + 11110010 (-14)!

----------!00000000 ( 0)

DEC ZNAK-MOD Rep. U2

+7 0111 0111

+6 0110 0110

+5 0101 0101

+4 0100 0100

+3 0011 0011

+2 0010 0010

+1 0001 0001

+0 0000 0000

-0 1000 --

-1 1001 1111

-2 1010 1110

-3 1011 1101

-4 1100 1100

-5 1101 1011

-6 1110 1010

-7 1111 1001

-8 -- 1000

Liczby całkowite ujemne

Liczby i znaki w zapisie binarnym Reprezentacja uzupe≥nienia do 2

Reprezentacja uzupe≥nienia do 2 dla liczb ca≥kowitych

b – liczba ca≥kowita (moøe byÊ ujemna)

b = ≠bN≠12N≠1+

N≠2ÿ

j=0

bj

2j = ≠bN≠12N≠1+bN≠22N≠2+ . . .+b121+b020

Typy danych dla reprezentacji uzupe≥nienia do 2

N = 8 : od ≠27 = ≠128 do 127 = 27 ≠ 1N = 16 : od ≠215 = ≠32768 do 32767 = 215 ≠ 1N = 32 : od ≠231 do 231 ≠ 1N = 64 : od ≠263 do 263 ≠ 1N = 128 : od ≠2127 do 2127 ≠ 1

Dzia≥ania przeprowadza siÍ na danych tego samego typu.

Rafa≥ J. Wysocki ([email protected]) Pracownia komputerowa 9 stycznia 2012 15 / 76

Własności reprezentacji uzupełnienia do 2Liczby i znaki w zapisie binarnym Reprezentacja uzupe≥nienia do 2

W≥asnoúci reprezentacji usupe≥nienia do 2

Tylko liczby ca≥kowite (mogπ byÊ ujemne).

Dodawanie i odejmowanie jak dla reprezentacji bezznakowej.

MoøliwoúÊ wystπpienia przepe≥nienia (w innych okolicznoúciach, niødla reprezentacji bezznakowej).

Przy danej liczbie bitów najwiÍksza wartoúÊ jest o po≥owÍ mniejsza odnajwiÍkszej wartoúci dla analogicznego typu danych w reprezentacjibezznakowej.

Rafa≥ J. Wysocki ([email protected]) Pracownia komputerowa 9 stycznia 2012 17 / 76

Reprezentacja liczb rzeczywistych

Ułamki w systemie binarnym

65.872 (dec) 6 ⇤ 101 + 5 ⇤ 100 + 8 ⇤ 10�1 + 7 ⇤ 10�2 + 2 ⇤ 10�3

5.25 (dec) = 101.01 (bin)

1 ⇤ 22 + 0 ⇤ 21 + 1 ⇤ 20 + 0 ⇤ 2�1 + 1 ⇤ 2�2

Reprezentacja liczb rzeczywistych

6510 =?265%2 = 1!32%2 = 0!16%2 = 0! 8%2 = 0! 4%2 = 0! 2%2 = 0! 1%2 = 1!

0.40625*2 = 0.8125!0.8125*2 = 1.625!0.625*2 = 1.25!0.25*2 = 0.5!0.5*2 = 1.0!

65.4062510 =?2

65.40625 (dec) = 1000001.01101 (bin)

Reprezentacja liczb rzeczywistych

4.56⇥ 10�14 = 456⇥ 10�16 = 0.456⇥ 10�13

Notacja naukowa

Reprezentacja zmiennoprzecinkowa (ang. floating point)

Reprezentacja liczb rzeczywistych

zmM ⇥BZcC

zmM ⇥ 2ZcC

zmM ⇥ 2C�Kc

gdzie: M - mantysa, C - wykładnik (cecha), B - podstawa, z - znak mantysy i podstawy.

W sys. binarnym

Kc - stała

Reprezentacja liczb rzeczywistych

Przykład - 8 bitów, Kc = 7

Z C C C C M M M

00000000 = 1.0000*2e-7 = 0.0078125!01111111 = 1.8750*2e+8 = 480

Normowanie mentysy

1.bn. . . b01.0 M 2.0

Reprezentacja liczb rzeczywistych

Dostępne zakresy:

0

-480 -0.0078125

+0.0078125 +480

przepełnienie ujemneniedomiar ujemny

przepełnienie dodatnie

niedomiar dodatni

Reprezentacja liczb rzeczywistychLiczby i znaki w zapisie binarnym Reprezentacje zmiennoprzecinkowe

Zmiennoprzecinkowe reprezentacje liczb

Istnieje wiele reprezentacji dla tej samej d≥ugoúci s≥owa1 Dok≥adnoúÊ zaleøy od d≥ugoúci (liczby bitów) mantysy.2 Zakres wartoúci zaleøy od d≥ugoúci (liczby bitów) wyk≥adnika.3 Przy przeprowadzaniu operacji wyniki zaokrπgla siÍ tak, aby moøna jeby≥o zapisaÊ z pomocπ wybranej liczby bitów mantysy i wyk≥adnika.

Problem niezgodnoúci miÍdzy róønymi reprezentacjami zosta≥ rozwiπzanypoprzez wprowadzenie miÍdzynarodowej normy – standard IEEE 754.

PostaÊ znormalizowanaZak≥ada siÍ, øe najbardziej znaczπcy bit mantysy jest jedynkπ i nie jest onprzechowywany. Wówczas jednak wystÍpuje problem reprezentacji dla zera.

Rafa≥ J. Wysocki ([email protected]) Pracownia komputerowa 9 stycznia 2012 19 / 76

Standard IEEE 754Reprezentacja 32 bitowa

Kc = 127

Standard IEEE 754Liczby i znaki w zapisie binarnym Reprezentacje zmiennoprzecinkowe

Reprezentacja o pojedynczej precyzji (ang. single precision)

r = ±Sr

◊ 2Wr

1 S≥owo 32-bitowe.2 b31

= znak.3 b30

. . . b23

= Wr

(od ≠126 do 127).4 PostaÊ znormalizowana:

Sr

= 1+23ÿ

j=1

b23≠j2≠j

5 PostaÊ zdenormalizowana:

Wr

= ≠126, Sr

=23ÿ

j=1

b23≠j2≠j

Rafa≥ J. Wysocki ([email protected]) Pracownia komputerowa 9 stycznia 2012 21 / 76

Pojedyńcza precyzja (ang. single precision)

Standard IEEE 754Podwójna precyzja (ang. double precision)

Liczby i znaki w zapisie binarnym Reprezentacje zmiennoprzecinkowe

Reprezentacja o podwójnej precyzji (ang. double precision)

r = ±Sr

◊ 2Wr

1 S≥owo 64-bitowe.2 b63

= znak.3 b62

. . . b52

= Wr

(od ≠1022 do 1023).4 PostaÊ znormalizowana:

Sr

= 1+52ÿ

j=1

b52≠j2≠j

5 PostaÊ zdenormalizowana:

Wr

= ≠1022, Sr

=52ÿ

j=1

b52≠j2≠j

Rafa≥ J. Wysocki ([email protected]) Pracownia komputerowa 9 stycznia 2012 22 / 76