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 |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
znaménkový bit |
Zobrazení kladných čísel:
Zobrazení záporných čísel:
+/- |
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ů |
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í:
Příklad odčítání:
|
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 |
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 |
- 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
|
Příklad 2: | -0.312510 -0.312510 = -0.01012 = -1.012×2-2
|
Příklad 3: | 1.0
|
Zvláštní čísla podle IEEE 754
0 |
|
FPU bežně produkuje kladnou nulu
+ 0 = +1.000 ... × 2-127, je-li počet bit; exponentu = 8
- 0 = -1.000 ... × 2-127.
Kladné nekonečno Záporné nekonečno |
|
+
= +1.0× 2128, je-li počet bitů exponentu = 8
-
= -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 = (exponent = 11111111) = nenormalizované číslo (exponent = 00000000) = atd. obsah registru |
Rozsah zobrazení:
(-1.0×22n-1;
+1.0×22n-1)
n ... počet bitů exponentu
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
nenormalizované: +0.00 ...001×2-2n-1+1
= 2-2n-1+1
- m