PRIPO Principy počítačů 13.10.2009 – cvičení č. 4 Číselné soustavy a převody mezi nimi Martin Adámek
Organizační drobnosti docházka PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT)
PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT) Soustavy obecně název soustavy = počet cifer = nejvyšší cifra + 1 např. desítková (dekadická) =Decimal 10 cifer (0..9) nejvyšší „9“ analogicky: Dvojková=Binární (dvě cifry: 0..1) Šestnáctková=Hexadecimální (16 cifer: 0..F) pozor! Fh=15d, nikoliv 16d (protože 10 u desítkové už také potřebuje dvě číslice) PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT)
PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT) Soustavy obecně terminologická poznámka: číslice=cifra=digit (ENG)=cyfra (PL)... 1znak číslo... skupina 1..n číslic logika věci/význam/převod do desítkové: řády odpovídají mocninám základu desítková: 1000-100-10-1 ~ 103-102-101-100 5167 = 5*103 + 1*102 + 6*101 + 7*100 pokud je číslo vyšší, než může vyjádřit nejvyšší číslice: ? použití vyššího řádu PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT)
Dvojková (a převod do desítkové) Vše jako v desítkové, jen základem je „2“ 24 – 23 – 22 – 21 – 20 0100b = (0*23 + 1*22 + 0*21 + 0*20)d 0000b=0d 0001b=1d 0010b=2d 1111b=(8+4+2+1)d=15d Fh=1111b Pamatujte si pro usnadnění: Hodnoty řádů ve dvojkové soustavě jsou ..-8-4-2-1 násobí se jen jedničkou, nebo nulou – stačí zprava posčítat ..-8-4-2-1 na pozicích s jedničkami !!! (příklady...) 1 řád (číslice) ve dvojkové soustavě = 1 bit PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT)
Desítková –> Dvojková dělíme dvěma, zapisujeme zbytky 9210: 92/2=46; zbytek 0 46/2=23; zbytek 0 23/2=11; zbytek 1 11/2= 5; zbytek 1 5/2= 2; zbytek 1 2/2= 1; zbytek 0 1/2= 0; zbytek 1 9210=10111002 na závěr kontrola převodem zpět do d. schéma 64-32-16-8-4-2-1: 4+8+16+64=92 Převod 10-16 analogicky, jen dělíme 16ti! =>zbytek nám vychází vždy 0..15, což odpovídá šestnáctkovým číslicím 0..F PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT)
Zapamatujte si mocniny dvou! Odpovídají rozsahu datového typu (počet rozlišovaných hodnot, velikost/jemnost informace) o daném počtu bitů 1bit = 1vodič s logickou hodnotou 0, nebo 1 -analogicky 1 nejmenší políčko paměti 1bit = nejmenší jednotka informace (true x false; pravda x nepravda; ano x ne; 1 x 0; +5V x 0V; +5V x -5V; zabil x nezabil; žije x nežije; vezme si x nevezme si) 0bitů ~ 1 hodnota (20=1) – 0 1bit ~ 2 hodnoty (21=2) – 0, 1 2bity ~ 4 hodnoty (22=4) – 0, 1, 2, 3 00; 01; 10; 11 3bity ~ 8 hodnot (23=8) – 0d až 7d 000b-111b 4bity ~ 16 hodnot (24=16) – 0d až 15d 0000b-1111b 1řád hexadecimální soustavy 8bitů ~ 256 hodnot (28=256) – 0d až 255d 00000000b - 11111111b 00h – FFh (2řády hexadecimální soustavy) RGB kód bílé: 255-255-255d; FF-FF-FFh 20=1; 21=2; 22=4; ... 2 4 8 16 (4bity ~ 1 řád 16kové soustavy; 1111b=15d) 32 64 128 256 (1 byte (8bitů) dokáže rozlišit 256 hodnot, např. 0..255 celočíselně) 512 1024 (1K) 2048 (2K) 4096 (4K) 220=210*210=1024*1024=10242=1M 230=10243=1G žluté hodnoty musíte umět i za úplňku ! PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT)
Dvojková <–> Šestnáctková viz předchozí slide: 8 bitů už je opticky mnoho p(vznik_chyby_člověka)→1 zpřehlednění: 8x více existujících číslic (0 až F), 4x méně řádů (použitých číslic) 16=24 4 řády dvojkové ~ 1 řád šestnáctkové snadný a rychlý převod à 4řády(2) / 1řád(16) PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT)
Dvojková <–> Šestnáctková dvojková – šestnáctková – desítková 0000 – 0 – 0 0001 – 1 – 1 0010 – 2 – 2 0011 – 3 – 3 0100 – 4 – 4 0101 – 5 – 5 0110 – 6 – 6 0111 – 7 – 7 1000 – 8 – 8 1001 – 9 – 9 1010 – A – 10 1011 – B – 11 1100 – C – 12 1101 – D – 13 1110 – E – 14 1111 – F – 15 u všech soustav platí, že při změně ve vyšším řádu se následně zopakuje celá výše použitá posloupnost hodnot v nižších řádech (Např: 00, 01, 10, 11; pak 100, 101, 110, 111. U desítkové: 0-9; pak 10-19; 20-29) Tabulka je pro jeden šestnáctkový řád; při více řádech se opakuje vedle sebe 816=?2 10112 = ?16 FF16=?2 4A16=?2 2516=?2 3816=?2 PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT)
Šestnáctková –> Desítková každý řád vynásobte patřičnou mocninou šestnácti a vše sečtěte FAh = ? (snadno vypočitatelné z hlavy) =15*161 + 10*160 = 15*16 + 10*1 = 256-16+10=256-6=250d 58h = ? = 16*5 + 8 = tento snadný výpočet vždy proveďte jako samozřejmou kontrolu po náročném převodu desítkové do šestnáctkové! PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT)
PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT) Obecně (A)10 = (B)2 = (C)8 = (D)16 = (E)7 Vyplatí se převádět z desítkové do šestnáctkové a z ní pak do dvojkové, ne nejdříve do dvojkové a z ní do šestnáctkové - dvěma se sice dělí snadnějí, ale musí se dělit vícekrát, trvá to déle, člověk se více unaví – dělit dvěma místo šestnácti je jako jet na kole na příliš lehký převod – je to sice zdánlivě (krátkodobě) snazší, ale je to pomalejší a člověk se více unaví PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT)
Sčítání ve dvojkové soustavě Úplně stejně jako desítkové při písemném sčítání pod sebou jasné&názorné Jen máme k dispozici jen dvě číslice jsme nuceni dříve použít vyšší řád 1+0; 10+1; 10+11; 10+11; 1010+101; 1011+1; 1011+10; 1010+111; ... =? PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT)
Snadný převod z desítkové na dvojkovou podle principu 128-64-32-16-8-4-2-1, ale obráceně, než z dvojkové do desítkové princip útraty celého obsahu peněženky – vždy se vezme nejvyšší číslo, na jaké je Př: 8410: 128 ne; 64 ano (zbyde 20); 32 ne; 16 ano (zbydou 4); 8 ne; 4 ano (nezbyde nic); 2 ne; 1 ne 8410=10101002 PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT)
PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT) Příště záporná čísla, doplňkový kód, odčítání PRIPO, cvičení – Ing. Martin Adámek (UHK-FIM-KIT)