. .
Čísla v počítači Výpočetní technika I Ing. Pavel Haluza ústav informatiky PEF MENDELU v Brně
[email protected]
Přednáška 2:
Osnova přednášky
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače
• Práce s počítačem — ergonomie — údržba počítače • Číselné soustavy — poziční a nepoziční soustavy — převody mezi soustavami — aritmetické operace v různých soustavách • Uložení čísel v paměti počítače — kladná čísla — záporná čísla — BCD číslice — reálná čísla
Výpočetní technika I
Přednáška 2: Čísla v počítači
2 / 36
Přednáška 2:
Ergonomie
Čísla v počítači
Práce s počítačem Ergonomie Údržba počítače
Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače
• Nauka o tom, jak má člověk pracovat u počítače, aby
mu to způsobilo co nejmenší zdravotní újmu • Držení těla — — — — —
lokty ohnuté do pravého úhlu, drženy u těla zápěstí narovnaná, nepokládáme před klávesnici prsty nad klávesami mírně pokrčíme myš držíme volně, nepokládáme zápěstí na podložku nohy položeny celou plochou chodidla na podlaze
• Poloha monitoru — při práci s počítačem velmi trpí zejména oči — doporučená vzdálenost od monitoru je 40–60 cm — kratší vzdálenost poškozuje oči (viditelné záření) — delší vzdálenost vyžaduje namáhavé zaostřování
Výpočetní technika I
Přednáška 2: Čísla v počítači
3 / 36
Přednáška 2:
Čísla v počítači
Problémy při špatném sezení u počítače
Práce s počítačem Ergonomie Údržba počítače
Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače
Výpočetní technika I
Přednáška 2: Čísla v počítači
4 / 36
Přednáška 2:
Údržba počítače
Čísla v počítači
Práce s počítačem Ergonomie Údržba počítače
Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače
• Prach, tekutiny, drobky, mechanické vlivy — počítač je plný elektroniky, proto doslova přitahuje prach ve velké míře — na základní oprášení postačí suchá nebo polosuchá prachovka, pozor na únik tekutin — obvykle jednou ročně je třeba provést důkladnější údržbu vnitřku počítače vysavačem — klávesnice vyžaduje speciální údržbu • Teplo — urychluje korozi a zkracuje životnost součástek — vrstva prachu uvnitř počítače tepelně izoluje — počítač neumisťujeme do blízkosti topných těles — pozor na tepelný šok při přenosu z chladu do tepla
Výpočetní technika I
Přednáška 2: Čísla v počítači
5 / 36
Přednáška 2:
Údržba počítače
Čísla v počítači
Práce s počítačem Ergonomie Údržba počítače
Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače
Výpočetní technika I
• Cigarety — kouření v blízkosti počítače zkracuje životnost až o 40 % — pevný disk je uzavřen ve vzduchotěsné schránce — molekuly v cigaretovém kouři jsou ale mnohem menší než molekuly vzduchu! • Magnetické a elektromagnet. pole, elektřina, záření — škodí především datům uloženým na magnetických pamětech (pevný disk, disketa) — motor tiskáren může produkovat elektromagnet. pole — magnetické šroubováky v blízkosti počítače nepoužíváme — do zásuvky, ve které je počítač, by neměly být zapojeny žádné větší motory ani topná tělesa — přímé sluneční záření škodí monitorům, obraz bledne Přednáška 2: Čísla v počítači
6 / 36
Přednáška 2:
Číselné soustavy
Čísla v počítači
Práce s počítačem Číselné soustavy Nepoziční soustavy Unární soustava
• Způsob vyjádření určitého počtu základních jednotek • K vyjádření velikosti čísla užíváme elementární symboly
Poziční soustavy
Převody mezi soustavami
•
Aritmetické operace Uložení čísel v paměti počítače
• • •
nazvané číslice a jejich kombinace Počet různých symbolů užitých v soustavě definuje základ soustavy, který není v soustavě nikdy obsažen Počet symbolů v dané soustavě je vždy roven základu Nekonečně mnoho soustav, ale vždy stejný princip Dělení podle způsobu určení hodnoty čísla — nepoziční soustavy — poziční soustavy
Výpočetní technika I
Přednáška 2: Čísla v počítači
7 / 36
Přednáška 2:
Nepoziční soustavy
Čísla v počítači
Práce s počítačem Číselné soustavy Nepoziční soustavy Unární soustava Poziční soustavy
Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače
• Dnes téměř nepoužíváno, spíše historická záležitost • Hodnota číslice není dána jejím umístěním v čísle • Neobsahují symbol pro nulu a záporná čísla • Výhodou jednoduché sčítání a odečítání • Nevýhodou dlouhý zápis čísel, která výrazně převyšují
hodnotu největšího symbolu soustavy
mayské číslice Výpočetní technika I
egyptské číslice Přednáška 2: Čísla v počítači
řecké číslice 8 / 36
Přednáška 2:
Nepoziční soustavy
Čísla v počítači
Práce s počítačem Číselné soustavy Nepoziční soustavy Unární soustava Poziční soustavy
Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače
• Římské číslice — způsob zápisu čísel pomocí písmen latinské abecedy — základem soustavy je sedm symbolů — „Ivan Vedl Xénii Lesní Cestou Do Města“ — „Ivan, Vašek, Xénie Lijí Cín Do Mumie“ — větší číslice vždy předcházejí menším, ve středověku pro zkrácení zápisu doplněny složené symboly, u kterých menší číslice předchází větší Symbol Význam I V X L C D M
Výpočetní technika I
1 5 10 50 100 500 1 000
Přednáška 2: Čísla v počítači
Symbol Význam IV IX XL XC CD CM
4 9 40 90 400 900
9 / 36
Přednáška 2:
Unární soustava
Čísla v počítači
Práce s počítačem Číselné soustavy Nepoziční soustavy Unární soustava Poziční soustavy
Převody mezi soustavami
• Soustava o základu z = 1 • Někdy označována jako speciální forma poziční
soustavy, ale není nepoziční • Číslo je vyjádřeno opakováním stejného symbolu
Aritmetické operace Uložení čísel v paměti počítače
Výpočetní technika I
Přednáška 2: Čísla v počítači
10 / 36
Přednáška 2:
Poziční soustavy
Čísla v počítači
Práce s počítačem Číselné soustavy Nepoziční soustavy Unární soustava Poziční soustavy
Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače
• Hodnota každé číslice je dána její pozicí v čísle, tím je
dána váha pro výpočet celkové hodnoty čísla • Nezbytným předpokladem pro použití pozičních soustav je existence symbolu pro nulu • Nejrozšířenější jsou polyadické soustavy o základu z, kde z je celé číslo větší než 1 (= počet číslic v soustavě) • Způsoby vyjádření čísla — poziční zápis (an …a0 )z — polynomiální zápis ±
+∞ ∑
ai zi , kde ai ∈ {0, …, z − 1}
i=−∞
Výpočetní technika I
Přednáška 2: Čísla v počítači
11 / 36
Přednáška 2:
Významné soustavy
Čísla v počítači
Práce s počítačem Číselné soustavy Nepoziční soustavy
• Dvojková soustava (binární) – 2 číslice (0, 1) — používají všechny moderní počítače
Unární soustava Poziční soustavy
Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače
• Osmičková soustava (oktalová) – 8 číslic (0, 1, …, 7) • Desítková soustava (dekadická) – 10 číslic (0, 1, …, 9) • Šestnáctková soustava (hexadecimální) – 16 číslic — MAC adresy, odstíny barev na webu, … • Jak vyjádřit šestnáctkovou soustavu, když máme
k dispozici jen 10 číslic? — použijeme písmena anglické abecedy — 10 = A, 11 = B, 12 = C, 13 = D, 14 = E, 15 = F — šestnáctková soustava tedy obsahuje číslice 0, 1, …, F • Za jakou soustavu lze považovat Morseovu abecedu? • Jaké číselné soustavy ještě znáte a běžně používáte? Výpočetní technika I
Přednáška 2: Čísla v počítači
12 / 36
Přednáška 2:
Čísla v počítači
Podoba čísel ve významných soustavách
Práce s počítačem Číselné soustavy Nepoziční soustavy Unární soustava Poziční soustavy
Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače
Výpočetní technika I
10
2
8
16
10
2
8
16
0 1 2 3 4 5 6 7 8 9 10 11 12 13
0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101
0 1 2 3 4 5 6 7 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 A B C D
14 15 16 17 18 19 20 21 22 23 24 25 26 27
1110 1111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011
16 17 20 21 22 23 24 25 26 27 30 31 32 33
E F 10 11 12 13 14 15 16 17 18 19 1A 1B
Přednáška 2: Čísla v počítači
13 / 36
Přednáška 2:
Čísla v počítači
Práce s počítačem Číselné soustavy Nepoziční soustavy Unární soustava Poziční soustavy
Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače
Výpočetní technika I
Důvody pro zavedení dvojkové soustavy • Počítač je zařízení, které zpracovává jen číselné údaje • Tyto číselné údaje jsou v počítači uloženy ve dvojkové
soustavě, tj. vše v podobě pouze 0 a 1 • Logické obvody počítačů pracují se dvěma různými stavy – zapnuto (1), vypnuto (0), technicky není problém rozlišit (proud protéká × neprotéká) • Nejmenší jednotkou paměti je buňka, která dokáže uchovat informaci o velikosti 1 bitu • Dvojkovou soustavu představil již německý filozof, vědec a matematik Gottfried Wilhelm von Leibniz (1646–1716)
Přednáška 2: Čísla v počítači
14 / 36
Přednáška 2:
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Z desítkové do libovolné Z libovolné do desítkové Soustavy se základem 2
n
Aritmetické operace Uložení čísel v paměti počítače
Výpočetní technika I
Převody mezi soustavami • Převod z desítkové soustavy do libovolné – postupně
dělíme základem cílové soustavy a sbíráme zbytky • Hledáme hodnoty a0 , …, an tak, aby platilo x = an zn + … + a1 z + a0 • Příklad: převádíme 123 do devítkové soustavy 123 div 9 = 13 123 mod 9 = a0 = 6 13 div 9 = 1 13 mod 9 = a1 = 4 1 div 9 = 0 1 mod 9 = a2 = 1 • Kontrola: x = a2 z2 + a1 z1 + a0 = 1 · 92 + 4 · 91 + 6 = 123 12310 = 1469
Přednáška 2: Čísla v počítači
15 / 36
Přednáška 2:
Převody mezi soustavami
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Z desítkové do libovolné
• Desetinná čísla při převodu rozdělíme na celou •
Z libovolné do desítkové Soustavy se základem 2
n
Aritmetické operace
•
Uložení čísel v paměti počítače
•
•
Výpočetní technika I
a desetinnou část Celou část převedeme standardně dělením základem cílové soustavy a sběrem zbytků Desetinnou část převedeme násobením základem cílové soustavy a sběrem celých částí výsledků Příklad: převádíme 32,75 do osmičkové soustavy 32 div 8 = 4 32 mod 8 = a0 = 0 4 div 8 = 0 4 mod 8 = a1 = 4 0,75 · 8 = 6,0 celá část (a−1 ) = 6, desetinná část = 0,0 Kontrola: x = a1 z1 + a0 + a−1 z−1 = 4 · 81 + 0 + 6 · 8−1 = 32,75 32,7510 = 40,68 Přednáška 2: Čísla v počítači
16 / 36
Přednáška 2:
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Z desítkové do libovolné Z libovolné do desítkové Soustavy se základem 2
n
Aritmetické operace Uložení čísel v paměti počítače
Výpočetní technika I
Převody mezi soustavami • Převod z libovolné soustavy do desítkové – vyčíslením
z-adického tvaru čísla ve tvaru řady x = an zn + … + a1 z + a0 • Příklady: 3145 = 3 · 52 + 1 · 51 + 4 · 50 = 84 10012 = 1 · 23 + 0 · 22 + 0 · 21 + 1 · 20 = 9 F116 = 15 · 161 + 1 · 160 = 241 178 = 1 · 81 + 7 · 80 = 15 4117 = 4 · 72 + 1 · 71 + 1 · 70 = 204 12310 = 1 · 102 + 2 · 101 + 3 · 100 = 123 3,214 = 3 · 40 + 2 · 4−1 + 1 · 4−2 = 3,5625
Přednáška 2: Čísla v počítači
17 / 36
Přednáška 2:
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Z desítkové do libovolné Z libovolné do desítkové Soustavy se základem 2
n
Aritmetické operace Uložení čísel v paměti počítače
Převody mezi soustavami • Převod mezi soustavami o základu 2n — pro použití v počítači mají hlavní význam — 1 číslice soustavy o základu 2n odpovídá n číslicím binární soustavy — 1 číslice osmičkové soustavy odpovídá 3 číslicím dvojkové soustavy, protože 8 = 23 — příklad: 68 = 1102 • Převod mezi libovolnými soustavami — nejjednodušší způsob přes desítkovou soustavu — příklad: 1F16 = 3110 = 1115
Výpočetní technika I
Přednáška 2: Čísla v počítači
18 / 36
Přednáška 2:
Sčítání a odčítání
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Sčítání a odčítání Násobení
Uložení čísel v paměti počítače
Výpočetní technika I
• Stejný princip ve všech soustavách, tedy i v desítkové • Kdykoliv při sčítání v nějakém řádu součet dosáhne
základu soustavy, nebo jej překročí, provedeme přenos do vyššího řádu • Příklady: 4236 427148 13416 −170438 5216 236518 31256
Přednáška 2: Čísla v počítači
19 / 36
Přednáška 2:
Násobení
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Sčítání a odčítání Násobení
Uložení čísel v paměti počítače
Výpočetní technika I
• Opět stejný princip ve všech soustavách • Do vyššího řádu převádíme kdykoli po překročení
základu soustavy • Příklad: 324 · 214 324 130 4 13324 • Zapisujeme, o kolik jsme překročili nejbližší násobek základu soustavy • Pamatujeme si, kolikrát jsme překročili základ soustavy • Dělení lze provést také, ale prakticky se nepoužívá Přednáška 2: Čísla v počítači
20 / 36
Přednáška 2:
Čísla v počítači
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače Kladná čísla Záporná čísla BCD číslice Reálná čísla
Výpočetní technika I
• Operační paměť počítače je rozdělena do
adresovatelných jednotek velikosti slabiky (bajtu) • Ve slabice číslujeme bity 0 a 7, přičemž bit 0 je bitem nejnižšího řádu, bit 7 je bitem nejvyššího řádu • Možnosti uložení čísel v počítači — kladná čísla – přímo na daném prostoru bez úprav — záporná čísla – je potřeba uložit navíc informaci o znaménku, k tomu stačí jeden bit — reálná čísla – oblast paměti je rozdělena na tři části (znaménko, mantisa, exponent)
Přednáška 2: Čísla v počítači
21 / 36
Přednáška 2:
Kladná čísla
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami
• Uložení čísla v jedné slabice:
Dekadicky
Aritmetické operace Uložení čísel v paměti počítače
0
Kladná čísla Záporná čísla BCD číslice Reálná čísla
137 255
Výpočetní technika I
Binárně ve slabice 27
26
25
24
23
22
21
20
0
0
0
0
0
0
0
0
7
2
2
6
5
2
2
4
3
2
2
2
1
2
20
1
0
0
0
1
0
0
1
27
26
25
24
23
22
21
20
1
1
1
1
1
1
1
1
Přednáška 2: Čísla v počítači
22 / 36
Přednáška 2:
Záporná čísla
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače Kladná čísla Záporná čísla BCD číslice Reálná čísla
Výpočetní technika I
• Bit nejvyššího řádu je obětován pro znaménko — 0xxxxxxx – kladné číslo — 1xxxxxxx – záporné číslo • Pro vyjádření hodnoty potom zůstává v 1 bajtu pouze 7
bitů, ve 2 bajtech pouze 15 bitů apod. • Možnosti vyjádření záporného čísla v počítači — — — —
přímý kód inverzní kód doplňkový kód kód s posunutou nulou
Přednáška 2: Čísla v počítači
23 / 36
Přednáška 2:
Přímý kód
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače Kladná čísla Záporná čísla BCD číslice Reálná čísla
Výpočetní technika I
• Nejvyšší bit je obětován pro znaménko, zbývající bity
beze změn • Příklad: vyjádření čísel 62 a −62 001111102 (62) 101111102 (−62) • Problém: nelze sčítat kladná a záporná čísla 000000112 (3) 100001012 (−5) (−8) 100010002 • Z výše uvedeného důvodu přímý kód nelze použít
Přednáška 2: Čísla v počítači
24 / 36
Přednáška 2:
Inverzní kód
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače Kladná čísla Záporná čísla BCD číslice Reálná čísla
Výpočetní technika I
• Vyjdeme z přímého kódu, u všech významových bitů
(tzn. kromě znaménkového) provedeme inverzi • Příklad: vyjádření čísel 62 a −62 001111102 (62) (−62, přímý kód) 101111102 110000012 (−62, inverzní kód) • Problém: dvě různé nuly při porovnávání 000000002 (+0) 111111112 (−0) • Z výše uvedeného důvodu inverzní kód nelze použít
Přednáška 2: Čísla v počítači
25 / 36
Přednáška 2:
Doplňkový kód
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače Kladná čísla Záporná čísla BCD číslice Reálná čísla
Výpočetní technika I
• Vyjdeme z inverzního kódu, k číslu přičteme jedničku • Příklad: vyjádření čísel 62 a −62
001111102 (62) 101111102 (−62, přímý kód) 110000012 (−62, inverzní kód) + 12 (−62, doplňkový kód) 110000102 • Doplňkový kód řeší oba zmíněné problémy 000000002 000000112 (3) 111111112 111111012 (−5) + 12 (−2) 111111102 000000002
Přednáška 2: Čísla v počítači
(+0)
(−0)
26 / 36
Přednáška 2:
Doplňkový kód
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače Kladná čísla Záporná čísla BCD číslice Reálná čísla
Výpočetní technika I
• Sčítání ve dvojkovém doplňkovém kódu je stejné jako
ve dvojkové soustavě • Problém: je-li přenos do znaménkového bitu rozdílný od přenosu z něj, sčítání je neplatné • Příklad: sčítání čísel −67 a −67 101111012 (−67) 101111012 (−67) (122) 011110102
Přednáška 2: Čísla v počítači
27 / 36
Přednáška 2:
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače Kladná čísla Záporná čísla BCD číslice Reálná čísla
Výpočetní technika I
Kód s posunutou nulou (aditivní kód) • Přičítá k číslu nějakou známou konstantu • Například pro osmibitová čísla (28 = 256 čísel) — 00000000 ∼ −128 — 10000000 ∼ 0 — 11111111 ∼ 127 • Příklad: vyjádření čísel 3 a −3
100000112 (3) 011110012 (−3) • Nevýhoda: zápis kladného čísla se liší od bezznaménkové reprezentace čísel • Operace sčítání nepotřebuje úpravy, ale pro násobení je nutné od operandů odečíst známou konstantu • Použití pro reprezentaci exponentu reálných čísel Přednáška 2: Čísla v počítači
28 / 36
Přednáška 2:
Záporná čísla v počítači
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače Kladná čísla
• Pokud je třeba ukládat záporná čísla, je nejvyšší bit
obětován pro znaménko, jinak je součástí hodnoty čísla (hodnotový bit) • Celočíselné datové typy v jazyce Pascal Název
Délka Znam.
Záporná čísla BCD číslice Reálná čísla
Výpočetní technika I
byte shortint word integer longint
8 bitů 8 bitů 16 bitů 16 bitů 32 bitů
ne ano ne ano ano
Rozsah
Hodnoty
8
h0; 2 − 1i 0 až 255 7 7 h−2 ; 2 − 1i −128 až 127 h0; 216 − 1i 0 až 65 535 15 15 h−2 ; 2 − 1i −32 768 až 32 767 h−231 ; 231 − 1i cca −2 · 109 až 2 · 109
Přednáška 2: Čísla v počítači
29 / 36
Přednáška 2:
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače Kladná čísla Záporná čísla BCD číslice Reálná čísla
Výpočetní technika I
Efektivní převod do doplňkového kódu • Záporné číslo sečteme s číslem 2n , kde n je počet bitů
cílového datového typu • Výsledek převedeme do dvojkové soustavy stejným způsobem jako kladné číslo • Příklad: zobrazení čísla −120 v proměnné typu shortint rozsah 28 = 256 hodnot 256 + (−120) = 256 − 120 = 136 136 = 100010002 • Příklad: zobrazení čísla −120 v proměnné typu integer rozsah 216 = 65 536 hodnot 65 536 + (−120) = 65 536 − 120 = 65 416 65 416 = 11111111100010002
Přednáška 2: Čísla v počítači
30 / 36
Přednáška 2:
Znaménková čísla – shrnutí
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače Kladná čísla Záporná čísla
• V jedné slabice (1 bajtu, 8 bitech) může být uloženo — číslo bez znaménka z intervalu 0 až 255 — číslo se znaménkem ve dvojkovém doplňkovém kódu z intervalu −128 až 127 • Ve dvou slabikách (2 bajtech, 16 bitech) může být
uloženo
BCD číslice Reálná čísla
— číslo bez znaménka z intervalu 0 až 65 535 — číslo se znaménkem ve dvojkovém doplňkovém kódu z intervalu −32 768 až 32 767 • O významu uložených bitů rozhoduje datový typ • Příklad: hodnota 100010002 může reprezentovat — číslo 136 v proměnné typu byte — číslo −120 v proměnné typu shortint (136 − 28 ) — ale také znak s kódem 136 v proměnné typu char
Výpočetní technika I
Přednáška 2: Čísla v počítači
31 / 36
Přednáška 2:
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače Kladná čísla Záporná čísla BCD číslice Reálná čísla
Výpočetní technika I
Uložení číslic desítkové soustavy • BCD číslice (Binary Coded Decimal) • Číslice mezi 0 a 9 uložená v půlslabice (4 bity) • V těchto bitech se nesmí vyskytovat kombinace 10–15 • Zhuštěný tvar – v jedné slabice jsou uloženy dvě BCD
číslice – číslice vyššího řádu je ve vyšší půlslabice • Nezhuštěný tvar – v jedné slabice jedna číslice, horní půlslabika je prázdná • Do BCD je číslo převedeno např. před zobrazením ve formě desítkového čísla u 7segmentových displejů • Příklad: zobrazení čísla 35 Horní půlslabika Dolní půlslabika 0011 (= 3) 0101 (= 5)
Přednáška 2: Čísla v počítači
32 / 36
Přednáška 2:
Reálná čísla
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače Kladná čísla Záporná čísla BCD číslice Reálná čísla
• Jsou v počítači uložena podle standardu IEEE 754 — IEEE = Institute of Electrical and Electronics Engineers — organizace elektroinženýrů a informatiků — spolu s ISO a ANSI patří k nejvýznamnějším standardizačním organizacím — http://www.ieee.org, příp. http://www.ieee.cz • Oblast paměti, ve které je uloženo reálné číslo, je
rozdělena do tří částí — znaménko – nejvyšší bit (0 = kladné, 1 = záporné) — exponent – nese informaci o velikosti čísla — mantisa – uchovává číslice • Matematicky lze reálné číslo vyjádřit jako
Znaménko Mantisa × 2Exponent Výpočetní technika I
Přednáška 2: Čísla v počítači
33 / 36
Přednáška 2:
Reálná čísla
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače Kladná čísla Záporná čísla BCD číslice Reálná čísla
Výpočetní technika I
• Single precision — 32bitová čísla — znaménko 1 bit, mantisa 23 bitů, exponent 8 bitů • Double precision — 64bitová čísla — znaménko 1 bit, mantisa 52 bitů, exponent 11 bitů • Extended precision — 80bitová čísla — znaménko 1 bit, mantisa 64 bitů, exponent 15 bitů
Přednáška 2: Čísla v počítači
34 / 36
Přednáška 2:
Reálná čísla
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače Kladná čísla Záporná čísla BCD číslice Reálná čísla
• Mantisa — kromě případu čísla 0 vždy začíná (v binární podobě) jedničkou, která se neukládá • Exponent — určuje počet řádů, o které musíme posunout řádovou čárku — může být kladný (posun doprava) i záporný (doleva) — před uložením je k němu přičteno číslo bias 2n−1 − 1 (kód posunuté nuly – posouvá nulu zhruba doprostřed rozsahu), kde n je počet bitů exponentu • Detailnější informace — http://amber.feld.cvut.cz/psp/IEEE754.htm — http://www.root.cz/clanky/norma-ieee-754-apribuzni-formaty-plovouci-radove-tecky/
Výpočetní technika I
Přednáška 2: Čísla v počítači
35 / 36
Přednáška 2:
Čísla v počítači
Práce s počítačem Číselné soustavy Převody mezi soustavami Aritmetické operace Uložení čísel v paměti počítače Kladná čísla Záporná čísla BCD číslice Reálná čísla
Výpočetní technika I
Posunutá forma exponentu • K exponentu se přičítá tzv. bias — single precision (8b exp.) – bias = 127 (28−1 − 1) — double precision (11b exp.) – bias = 1023 (211−1 − 1) • Důvod: snadnější porovnávání reálných čísel • Příklad: zobrazení čísla −12,5 v single precision — 12,5 = 1100,12 = 1,10012 × 23 — mantisa: 1001 — exponent (8b): 3 + 127 = 130 = 10000010 — výsledné číslo: 1 10000010 1001000…00 ↑ ↑ ↑ záporné exponent mantisa (23b)
Přednáška 2: Čísla v počítači
36 / 36