01 kody liczbowe i dzialania na liczbach binarnych

background image

Kody liczbowe

i działania na liczbach binarnych

Dariusz Chaberski

background image

Kody liczbowe

§

dwójkowy kod naturalny

+ reprezentacja

a

n

3

a

1

a

0

a

1

a

2

a

3

a

m

a

1

m

n

m

a

n

1

a

n

2

A:

L(A) =

n−1

X

i=−m

2

i

L (a

i

)

+ przykład 1

A = 10011010

L(A) = 0 × 2

0

+ 1 × 2

1

+ 0 × 2

2

+ 1 × 2

3

+ 1 × 2

4

+ 0 × 2

5

+ 0 × 2

6

+ 1 × 2

7

= 154

+ przykład 2

A = 1001.1010

L(A) = 0 × 2

4

+ 1 × 2

3

+ 0 × 2

2

+ 1 × 2

1

+ 1 × 2

0

+ 0 × 2

1

+ 0 × 2

2

+ 1 × 2

3

= 9.625

2

background image

§

+ wartość największa

L

max

(A) = 2

n

1 + 1 2

−m

= 2

n

2

−m

= 2

n

(1 2

−m−n

)

+ wartość najmniejsza większa od zera

L

min>0

(A) = 2

−m

3

background image

§

zapis liczb dwójkowych ze znakiem

+

kodowanie znak-moduł (ZM)

3 reprezentacja

a

0

a

1

a

2

a

3

a

m

a

1

m

n − 1

m

A

: a

n

1

a

n

2

a

n

3

a

n

4

a

1

L(A) = (1)

L(a

n1

)

n−2

X

i=−m

2

i

L (a

i

)

3 wartość największa

L

max

(A) = 2

n−1

1 + 1 2

−m

= 2

n−1

2

−m

3 wartość najmniejsza

L

min

(A) = (2

n−1

2

−m

)

4

background image

§

+

kodowanie znak-uzupełnienie do 1 (ZU1)

3 reprezentacja

a

0

a

1

a

2

a

3

a

m

a

1

m

n − 1

m

A

: a

n

1

a

n

2

a

n

3

a

n

4

a

1

−L(A) = L(A)

3 wartość największa

L

max

(A) = 2

n−1

2

−m

3 wartość najmniejsza

L

min

(A) = (2

n−1

2

−m

)

5

background image

§

+

kodowanie znak-uzupełnienie do 2 (ZU2)

3 reprezentacja

a

0

a

1

a

2

a

3

a

m

a

1

m

n − 1

m

A

: a

n

1

a

n

2

a

n

3

a

n

4

a

1

−L(A) = L(A + L

1

(2

−m

))

3 wartość największa

L

max

(A) = 2

n−1

2

−m

3 wartość najmniejsza

L

min

(A) = (2

n−1

1 + 1 2

−m

+ 2

−m

) = 2

n−1

6

background image

§

liczby dwójkowe zmiennoprzecinkowe

+ zapis zmiennopozycyjny (ogólnie)

a

0

a

1

a

2

a

3

a

m

a

1

m

n

m

a

1

a

n

1

a

n

2

a

n

3

cecha - wykładnik

mantysa

A

:

a

n

znak

C = A[n − 1, 0]

M = A[1, −m]

S = A[n]

E = 2

n−1

1

L(A) = (1)

L(S)

L(M) × 2

L(C)−E

2

n

1 ­ L(C) ­ 0

1 ¬ L(M) < 2, normalizacja

L(S) = 0, 1

7

background image

§

+ float (32 bity) - IEEE-754

A:

S

C

7

C

6

C

2

C

1

C

0

M

22

M

21

M

2

M

1

M

0

E = 127 = 0x7F,

M = 1.M

22

M

21

. . . M

2

M

1

M

0

+ double (64 bity) - IEEE-754

A:

S

C

2

C

1

C

0

M

2

M

1

M

0

C

10

C

9

M

51

M

50

E = 1023 = 0x3F F,

M = 1.M

51

M

50

. . . M

2

M

1

M

0

+ long double (80 bitów) - x87 (koprocesor)

A:

S

C

2

C

1

C

0

1

C

14

C

13

M

0

M

1

M

2

M

62

M

61

E = 16383 = 0x3F F F,

M = 1.M

62

M

61

. . . M

2

M

1

M

0

8

background image

§

+ wartość największa

L

max

(A) = L

max

(M) × 2

L

max

(C)−E

+ wartość najmniejsza

L

min

(A) = −L

max

(M) × 2

L

max

(C)−E

+ wartość największa mniejsza od zera

L

max<0

(A) = −L

min>0

(M) × 2

L

min

(C)−E

+ wartość najmniejsza większa od zera

L

min>0

(A) = L

min>0

(M) × 2

L

min

(C)−E

9

background image

§

+ przykład 1 , E = 127 (float)

0

0

1

1

0

1

0

0

0

1

1

1

0

1

1

0

1

1

1

1

0

1

1

1

1

0

1

0

1

1

A:

0

1

L(C) − E = 104 127 = 23

L(M) = L(1.11101101111010111101011) =

1 +

L(11101101111010111101011)

2

23

' 1.9294

L(A) = (1)

0

L(M) × 2

23

' 2.3 × 10

7

10

background image

§

+ wartości specjalne

typ

znak

cecha

mantysa

NaN

0, 1

111 . . . 111

M

n−1

M

n−2

M

n−3

. . . M

2

M

1

M

0

, L(M ) 6= 0

QNaN

0, 1

111 . . . 111

1M

n−2

M

n−3

. . . M

2

M

1

M

0

SNaN

0, 1

111 . . . 111

0M

n−2

M

n−3

. . . M

2

M

1

M

0

, L(M ) 6= 0

± Zero

0/1

000 . . . 000

000 . . . 000

± Nieskończoność

0/1

111 . . . 111

000 . . . 000

3 NaN - Not-a-Number - wartość, która nie reprezentuje liczby

3 SNaN - Significant-NaN - w momencie ustalania wartości generowane jest przerwanie sprzę-

towe wewnętrzne (wyjątek)

3 QNaN - Quiet-NaN

+ liczba zdenormalizowana - występuje w przypadku niedomiaru, np

0.M

62

M

61

. . . M

2

M

1

M

0

11

background image

§

kod BCD (ang. Binary Coded Decimal)

+ NBCD (ang. Natural BCD) wagowy (wagi dla poszczególnych bitów 8, 4, 2, 1)

A: a

n

1

,

3

a

n

1

,

2

a

n

1

,

1

a

n

1

,

0

A

1

A

0

a

0

,

3

a

0

,

2

a

0

,

1

a

0

,

0

a

1

,

0

a

1

,

1

a

1

,

2

a

1

,

3

A

n

1

L(A) =

n−1

X

i=0

10

i

L(A

i

)

L(A

i

) =

3

X

k=0

2

k

L (a

i,k

)

0 ¬ L(A

i

) ¬ 9

12

background image

Działania na liczbach binarnych

§

znaczniki

+ C - Carry - przeniesienie lub pożyczka

+ Z - Zero - wartość zerowa

+ N - Negative - wartość ujemna (kopia najstarszego bitu)

+ V - U2 oVerflow - przepełnienie (nadmiar w kodzie U2)

+ S - Sign - znak, S=VN, np 0x80 + 0x80 oraz 0xff + 0xff ustawiają S

+ H - Half carry - przeniesienie połówkowe (BCD)

13

background image

§

działania arytmetyczne

+ suma

1

1

0

1

1

1

1

1

0

0

1

0

1

0

1

0

0

0

0

0

1

0

0

1

1

0

A:

A+B:

B:

1

C:

Z:

0

N:

V:

0

0

0

0

0

0

0

S:

0

H:

14

background image

§

+ różnica (sposób tradycyjny)

1

1

0

1

1

1

1

0

1

1

1

0

1

0

0

0

1

1

1

0

1

1

1

1

A-B:

A:

B:

1

C:

Z:

0

N:

V:

S:

H:

1

0

1

1

15

background image

§

+ różnica (z wykorzystaniem własności B = B + L

1

(2

−m

), gdzie m = 4)

A = 11010111

B = 11101000

1

1

0

1

1

1

1

0

0

0

0

1

0

1

1

1

1

1

1

1

0

1

1

1

1

A-B:

A:

B:

C:

0

0

Z:

1

0

1

0

H:

N:

V:

S:

16

background image

§

+ kolejne przykłady (znaczniki C i V)

A

B

AB

znaczniki

X

U2

NB

X

U2

NB

X

U2

NB

C

V

0x01

1

1

0x01

1

1

+

0x02

2

2

0

0

0x3c

60

60

0x3c

60

60

+

0x78

120

120

0

0

0x41

65

65

0x41

65

65

+

0x82

-126

130

0

1

0x64

100

100

0x64

100

100

+

0xc8

-56

200

0

1

0x64

100

100

0x82

-126

130

+

0xe6

-26

230

0

0

0x64

100

100

0xa0

-96

160

+

0x04

4

4

1

0

0x80

-128

128

0x80

-128

128

+

0x00

0

0

1

1

0x80

-128

128

0x7f

127

127

+

0xff

-1

255

0

0

0x00

0

0

0xff

-1

255

-

0x01

1

1

1

0

0x80

-128

128

0x77

119

119

-

0x09

9

9

0

1

0x80

-128

128

0x81

-127

129

-

0xff

-1

255

1

0

17

background image

§

+ kolejne przykłady (znaczniki S i N)

A

B

AB

znaczniki

X

U2

NB

X

U2

NB

X

U2

NB

S

N

0xff

-1

255

0x00

0

0

+

0xff

-1

255

1

1

0x80

-128

128

0x80

-128

128

+

0x00

0

0

1

0

0x80

-128

128

0xff

-1

255

+

0x7f

127

127

1

0

0x7f

127

127

0x7f

127

127

+

0xfe

-2

254

0

1

0x00

0

0

0x01

1

1

-

0xff

-1

255

1

1

0x10

16

16

0x90

-112

144

-

0x80

-128

128

0

1

0x80

-128

128

0x7f

127

127

-

0x01

1

1

1

0

18

background image

§

+ suma dwóch liczb 2n-bitowych z wykorzystaniem n-bitowego arytmometru

A = A

H

◦ A

L

B = B

H

◦ B

L

◦ C

IN

C ◦ (A + B)

L

= A

L

+ B

L

+ C

IN

C

OU T

(A + B)

H

= C + A

H

+ B

H

C

OU T

(A + B) = ((C + A

H

+ B

H

) << n) + (A + B)

L

19

background image

§

+ iloczyn

A:

1

1

0

1

1

1

1

0

1

1

0

1

1

1

1

1

1

0

0

B:

1

0

1

1

1

1

0

1

1

0

1

0

1

1

0

1

1

1

0

0

0

A×B:

1

1

0

0

1

1

0

1

1

1

1

1

0

1

1

0

C:

Z:

0

20

background image

§

+ iloczyn dwóch liczb 2n-bitowych z wykorzystaniem n-bitowego arytmometru

A = A

H

◦ A

L

B = B

H

◦ B

L

AB = ((A

H

B

H

) << 2n) + ((A

L

B

H

+ A

H

B

L

) << n) + A

L

B

L

21

background image

§

+ iloraz

A

:

1

1

0

1

1

1

1

0

B

:

1

1

0

0

0

0

0

1

1

1

0

0

1

1

0

0

0

0

1

1

0

1

1

1

0

0

1

1

1

1

1

1

0

0

0

0

1

1

A

% B:

C

:

0

Z

:

0

22

background image

§

+ iloczyn liczb zmiennoprzecinkowych

A = A

S

◦ A

C

◦ A

M

,

B = B

S

◦ B

C

◦ B

M

,

AB = (A

S

◦ A

C

◦ A

M

) (B

S

◦ B

C

◦ B

M

) = (1)

L(A

S

)+L(B

S

)

(A

C

+ B

C

) (A

M

B

M

) .

+ iloraz liczb zmiennoprzecinkowych

A = A

S

◦ A

C

◦ A

M

,

B = B

S

◦ B

C

◦ B

M

,

A/B = (A

S

◦ A

C

◦ A

M

) / (B

S

◦ B

C

◦ B

M

) = (1)

L(A

S

)+L(B

S

)

(A

C

− B

C

) (A

M

/B

M

) .

23

background image

§

+ suma liczb zmiennoprzecinkowych

A = A

S

◦ A

C

◦ A

M

,

B = B

S

◦ B

C

◦ B

M

,

A+B = (A

S

◦ A

C

◦ A

M

)+(B

S

◦ B

C

◦ B

M

) =



(1)

L(A

S

)

A

M

+ (1)

L(B

S

)

B

M

2

L(B

C

)−L(A

C

)



◦A

C

.

+ różnica liczb zmiennoprzecinkowych

A = A

S

◦ A

C

◦ A

M

,

B = B

S

◦ B

C

◦ B

M

,

A−B = (A

S

◦ A

C

◦ A

M

)(B

S

◦ B

C

◦ B

M

) =



(1)

L(A

S

)

A

M

(1)

L(B

S

)

B

M

2

L(B

C

)−L(A

C

)



◦A

C

.

24

background image

§

+ suma liczb w kodzie BCD

A

:

B

:

(A + B)

BCD

:

(A + B)

NB

:

0

0

0

1

0

0

1

0

0

1

1

1

1

0

0

1

0

0

0

0

0

1

1

0

1

0

1

0

0

0

1

1

0

0

0

0

C

:

0

0

0

0

0

0

1

1

0

1

1

0

1

25

background image

§

operacje logiczne

+ AND - ∧, &; OR - ∨, |; XOR - ⊕, ˆ; NOT - A,˜

B:

1

1

0

1

1

1

1

0

0

0

0

1

1

1

0

0

A:

A B:

A B:

A:

0

0

0

1

0

1

0

1

1

1

0

1

0

1

1

1

A B:

1

1

0

0

0

0

0

1

1

1

1

0

1

0

1

0

26


Wyszukiwarka

Podobne podstrony:
Działania na liczbach i wyrażeniach
działania na liczbach?łkowitych
15 Język Instruction List Układy sekwencyjne Działania na liczbach materiały wykładowe
1 Działania na liczbach wymiernych i niewymiernych
dzialania na liczbach zespolonych
Działania na liczbach?łkowitych
spr dzialania na liczbach nat kl 5 gr 2, Matematyka, kl 5
Działania na liczbach całkowitych
Wlasnosci dzialan na liczbach rzeczywistych
Mat SP 4 6 Mat w nas kl 6 Kartkowki 1 Działania na liczbach nat (1)
Praca kl nr 1 dzialania na liczbach 5r, Matematyka, kl 5
Praca kl nr 1 dzialania na liczbach 6a, Matematyka, kl 6
działania na liczbach
Działania na liczbach naturalnych kl4
działania na liczbach I
Utrwalenie dzialan na liczbach w zakresie 5
lab1 dzialania na liczbach
Podstawowe operacje arytmetyczne na liczbach binarnych

więcej podobnych podstron