Soustavy užívané v počítačové praxi

z = 2 z = 8 z = 16
dvojková
binární

0,1

osmičková
oktalová

0,1,2,3,4,5,6,7

šestnáctková
hexadecimální

0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

 

desítkově dvojkově osmičkově šestnáctkově
       
0 00 00 00 0 0
1 00 00 01 1 1
2           10 2 2
3           11 3 3
4        1 00 4 4
5        1 01 5 5
6        1 10 6 6
7        1 11 7 7
8      10 00 10 8
9      10 01 11 9
10      10 10 12 A
11      10 11 13 B
12      11 00 14 C
13      11 01 15 D
14      11 10 16 E
15      11 11 17 F
16   1 00 00 20 10
17   1 00 01 21 11
.
.
.
32 100000 40 20

Zobrazení celého čísla v počítači v binárním tvaru

7 6 5 4 3 2 1 0
znaménkový
bit
             

Zobrazení kladných čísel:

Zobrazení záporných čísel:

Vztahy mezi zobrazeními

+/-

Kódová kombinace

Význam v kódu

Přímý Inverzní Doplňkový
0
0
0
.
.
0
1
1
:
:
1
1
   ........   00
   ........   01
   ........   10
   ........  
   ........  
   ........   11
   ........   00
   ........   01
   ........  
   ........  
   ........   10
   ........   11
0
1
2
.
.
+ MAX
- 0
- 1
.
.
- MAX + 1
- MAX
0
1
2
.
.
+ MAX
- MAX
- MAX + 1
.
.
-1
-0
0
1
2
.
.
+ MAX
- MAX - 1
- MAX
.
:
- 2
-1

šířka n-bitů

     

 Aritmetika ve dvojkových kódech

Základní operace - součet

Přetečení = výsledek operace spadá mimo rozsah zobrazení

Součet v doplňkovém kódu

Příklad:

0   1 1 0
0   1 0 1

01   10 1 1

 

1   0 1 0
1   0 1 1

10   01 0 1

 

Součet v inverzním kódu

Příklad: -0 + 1

1   1 1 1
1   0 0 1

0   0 0 0
      + 1

0   0 0 1

 Kód BCD (Binary Coded Decimal)

4 bity:

0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1


Zobrazení čísel v BCD kódu

Rozvinutý tvar (Unpacked Decimal)

Příklad:

Desítkově Rozvinutý tvar
7134610 F7 F1 F3 F4 C616
-7134610 F7 F1 F3 F4 D616

Zhuštěný tvar (Packed Decimal)

Příklad:

Desítkově Rozvinutý tvar
7134610 71346C16
-7134610 71346D16
Příklad sčítání:
 
 154(10) ==>>   0001 0101 0100(2/10)
+271(10) ==>> + 0010 0111 0001(2/10)
 

425(10) ==>>   0011 1100 0101

 

  0011 1100 0101
+      0110
 

0100 0010 0101(2/10)
 



 

 ==>> 425(10)

Příklad odčítání:

 571(10) ==>>   0101 0111 0001(2/10)
-356(10) ==>> - 0011 0101 0110(2/10)
 

215(10) ==>>   0010 0001 1011

 

  0010 0001 1011
-           0110
 

0010 0001 0101(2/10)
 



 

 ==>> 215(10)

Zobrazení reálného čísla

FORMÁT:

INTEGER:   WORD, SHORT, LONG ...
                          ... Dvojkový doplňkový kód

REAL:   TEMPORARY (80bitový) ...
                          ... IEEE 754 (Institute of Electrical and Electronics Engineers)
 

S Exponent Mantisa

+/- Mantisa × 2Exponent

S ... znaménko čísla   0=kladné, 1=záporné
Mantisa ... v Přímém kódu (znaménko je v S)

Normalizovaný tvar Mantisy:

    Mantisa

65020.gif
       Binární číslice nejvyššího řádu

=> Nejvyšší bit je vždy = 1                 
(vyjma případu číslo = 0)
=> Nejvyšší binární číslici vynecháváme

   1.|xxxxxxx ... 2
________>|<________________
vynecháme|zapíšeme do objektu

 

Exponent ... číslem 2Exponent vynásobíme Mantisu ve tvaru 1.xxxxxxx, abychom dostali zobrazované číslo.
 

Exponent ... v kódu posunuté nuly:
 

000 ... 000
011 ... 111
100 ... 000
111 ... 111
65025.gif
- max
0
+1
+ max + 1
max = 2n-1 - 1

K zapisovanému číslu přičítáme 2n-1 - 1

Tj. pro n = 8 přicítáme 12710 (7F16)

Příklad 1: 12.510
12.510  =  1100.12  =  1.10012×23

 
0 10000010 1001000 ... 00

 

Příklad 2: -0.312510
-0.312510  =  -0.01012  =  -1.012×2-2

 
1 01111101 01000 ......... 0

 

Příklad 3: 1.0

 
0 01111111 000000 ....... 0


Zvláštní čísla podle IEEE 754
 

0
0 00000000 000000 ....... 0
1 00000000 000000 ....... 0

FPU bežně produkuje kladnou nulu

+ 0 = +1.000 ... × 2-127, je-li počet bit; exponentu = 8
-  0 =  -1.000 ... × 2-127.

65030.gif Kladné nekonečno

Záporné nekonečno
0 11111111 000000 ....... 0
1 11111111 000000 ....... 0

+65030.gif = +1.0× 2128, je-li počet bitů exponentu = 8
 -65030.gif = -1.0× 2128.

Nenormalizované číslo:

Při nutnosti zobrazit menší číslo v abslolutní hodnotě než je 1.0×2-2n-1+1


Ke každému registru uschovávajícímu číslo IEEE je 2-bitový příznak.

11   ...   registr
01   ...   registr
10   ...   registr



00 ... "normální"
je prázdný
= 0
= 65030.gif (exponent = 11111111)
= nenormalizované číslo
   (exponent = 00000000)
= atd.
obsah registru

Rozsah zobrazení:

(-1.0×22n-1; +1.0×22n-1)         n ... počet bitů exponentu
    65035.gif
Pro účely určování rozsahu zobrazení předpony Mantisy = 1.0 bitů na exponentu = 8 ... (-2128; 2128)


Přesnost zobrazení:

= na kolik bitů lze zobrazit Mantisu
= počet bitů Mantisy +1 = m + 1


Rozlišitelnost:

= nejmenší kladné nenulové zobrazitelné číslo

normalizované:    +1.00 ... 000 ×2-2n-1+1
  65035a.gif

nenormalizované: +0.00 ...001×2-2n-1+1 = 2-2n-1+1 - m
    65035a.gif