Ergonomie Ergonomie Osnova přednášky Výpočetní technika I Ing Pavel Haluza ústav informatiky PEF MENDELU v Brně pavelhaluza@mendelucz ergonomie údržba počítače poziční a nepoziční soustavy převody mezi aritmetické operace v různých soustavách kladná čísla záporná čísla reálná čísla Výpočetní technika I 2 / 36 Ergonomie Problémy při špatném sezení u 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 3 / 36 Výpočetní technika I 4 / 36
Ergonomie Ergonomie 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 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 elektromagnetpole, 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 Výpočetní technika I 5 / 36 Výpočetní technika I 6 / 36 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 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 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 egyptské číslice řecké číslice Výpočetní technika I 7 / 36 Výpočetní technika I 8 / 36
Ří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 1 V 5 X 10 L 50 C 100 D 500 M 1 000 Symbol Význam IV 4 IX 9 XL 40 XC 90 CD 400 CM 900 Výpočetní technika I 9 / 36 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 Výpočetní technika I 10 / 36 Významné soustavy 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 a 0)z polynomiální zápis ± + aiz i, kde ai {0,, z 1} i= Výpočetní technika I 11 / 36 Dvojková soustava (binární) 2 číslice (0, 1) používají všechny moderní 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 12 / 36
Z desítkové do libovolné Z libovolné do desítkové Z desítkové do libovolné Z libovolné do desítkové Podoba čísel ve významných soustavách Důvody pro zavedení dvojkové soustavy 10 2 8 16 0 0 0 0 1 1 1 1 2 10 2 2 3 11 3 3 4 100 4 4 5 101 5 5 6 110 6 6 7 111 7 7 8 1000 10 8 9 1001 11 9 10 1010 12 A 11 1011 13 B 12 1100 14 C 13 1101 15 D 10 2 8 16 14 1110 16 E 15 1111 17 F 16 10000 20 10 17 10001 21 11 18 10010 22 12 19 10011 23 13 20 10100 24 14 21 10101 25 15 22 10110 26 16 23 10111 27 17 24 11000 30 18 25 11001 31 19 26 11010 32 1A 27 11011 33 1B 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) Výpočetní technika I 13 / 36 Výpočetní technika I 14 / 36 Soustavy se základem 2 n 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 = anz n + + a1z + 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 = a2z 2 + a1z 1 + a0 = 1 9 2 + 4 9 1 + 6 = 123 12310 = 1469 Soustavy se základem 2 n Desetinná čísla při převodu rozdělíme na celou 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 = a1z 1 + a0 + a 1z 1 = 4 8 1 + 0 + 6 8 1 = 32,75 32,7510 = 40,68 Výpočetní technika I 15 / 36 Výpočetní technika I 16 / 36
Z desítkové do libovolné Z libovolné do desítkové Sčítání a odčítání Násobení Z desítkové do libovolné Z libovolné do desítkové Sčítání a odčítání Násobení Soustavy se základem 2 n Převod z libovolné soustavy do desítkové vyčíslením z-adického tvaru čísla ve tvaru řady x = anz n + + a1z + a0 Příklady: 3145 = 3 5 2 + 1 5 1 + 4 5 0 = 84 10012 = 1 2 3 + 0 2 2 + 0 2 1 + 1 2 0 = 9 F116 = 15 16 1 + 1 16 0 = 241 178 = 1 8 1 + 7 8 0 = 15 4117 = 4 7 2 + 1 7 1 + 1 7 0 = 204 12310 = 1 10 2 + 2 10 1 + 3 10 0 = 123 3,214 = 3 4 0 + 2 4 1 + 1 4 2 = 3,5625 Soustavy se základem 2 n Převod mezi o základu 2 n pro použití v počítači mají hlavní význam 1 číslice soustavy o základu 2 n odpovídá n číslicím binární soustavy 1 číslice osmičkové soustavy odpovídá 3 číslicím dvojkové soustavy, protože 8 = 2 3 příklad: 6 8 = 110 2 Převod mezi libovolnými nejjednodušší způsob přes desítkovou soustavu příklad: 1F 16 = 31 10 = 1115 Výpočetní technika I 17 / 36 Výpočetní technika I 18 / 36 Sčítání a odčítání Násobení 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 13416 5216 31256 427148 170438 236518 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á Výpočetní technika I 19 / 36 Výpočetní technika I 20 / 36
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) Uložení čísla v jedné slabice: Dekadicky Binárně ve slabice 0 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 0 0 0 0 0 0 0 0 137 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 0 0 0 1 0 0 1 255 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 1 1 1 1 1 1 1 Výpočetní technika I 21 / 36 Výpočetní technika I 22 / 36 Přímý kód 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 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) 100010002 ( 8) Z výše uvedeného důvodu přímý kód nelze použít Výpočetní technika I 23 / 36 Výpočetní technika I 24 / 36
Inverzní kód Doplňkový kód 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) 101111102 ( 62, přímý kód) 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 Vyjdeme z inverzního kódu, k číslu přičteme jedničku Příklad: vyjádření čísel 62 a 62 111111012 111111102 001111102 101111102 110000012 + 12 (3) ( 5) ( 2) (62) ( 62, přímý kód) ( 62, inverzní kód) 110000102 ( 62, doplňkový kód) Doplňkový kód řeší oba zmíněné problémy 000000002 (+0) 000000112 111111112 + 12 000000002 ( 0) Výpočetní technika I 25 / 36 Výpočetní technika I 26 / 36 Doplňkový kód Kód s posunutou nulou (aditivní kód) 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) 011110102 (122) Přičítá k číslu nějakou známou konstantu Například pro osmibitová čísla (2 8 = 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 Výpočetní technika I 27 / 36 Výpočetní technika I 28 / 36
v počítači Efektivní převod do doplňkového kódu 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 Rozsah Hodnoty byte 8 bitů ne 0; 2 8 1 0 až 255 shortint 8 bitů ano 2 7 ; 2 7 1 128 až 127 word 16 bitů ne 0; 2 16 1 0 až 65 535 integer 16 bitů ano 2 15 ; 2 15 1 32 768 až 32 767 longint 32 bitů ano 2 31 ; 2 31 1 cca 2 10 9 až 2 10 9 Záporné číslo sečteme s číslem 2 n, 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 2 8 = 256 hodnot 256 + ( 120) = 256 120 = 136 136 = 100010002 Příklad: zobrazení čísla 120 v proměnné typu integer rozsah 2 16 = 65 536 hodnot 65 536 + ( 120) = 65 536 120 = 65 416 65 416 = 11111111100010002 Výpočetní technika I 29 / 36 Výpočetní technika I 30 / 36 Znaménková čísla shrnutí Uložení číslic desítkové soustavy 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 čí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 2 8 ) ale také znak s kódem 136 v proměnné typu char Výpočetní technika I 31 / 36 (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) Výpočetní technika I 32 / 36
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://wwwieeeorg, příp http://wwwieeecz 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 2 Exponent 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ů Výpočetní technika I 33 / 36 Výpočetní technika I 34 / 36 Posunutá forma exponentu 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 2 n 1 1 (kód posunuté nuly posouvá nulu zhruba doprostřed rozsahu), kde n je počet bitů exponentu Detailnější informace http://amberfeldcvutcz/psp/ieee754htm http://wwwrootcz/clanky/norma-ieee-754-apribuzni-formaty-plovouci-radove-tecky/ K exponentu se přičítá tzv bias single precision (8b exp) bias = 127 (2 8 1 1) double precision (11b exp) bias = 1023 (2 11 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,1 2 = 1,1001 2 2 3 mantisa: 1001 exponent (8b): 3 + 127 = 130 = 10000010 výsledné číslo: 1 10000010 1001000 00 záporné exponent mantisa (23b) Výpočetní technika I 35 / 36 Výpočetní technika I 36 / 36