ZĂĄkladnĂ poĹžadavek na poÄĂtaÄ je schopnost zobrazovat a pamatovat si ÄĂsla a provĂĄdÄt operace s tÄmito ÄĂsly. ÄĂsla mohou bĂ˝t zobrazena v rĹŻznĂ˝ch ÄĂselnĂ˝ch soustavĂĄch. Od ranĂŠho mlĂĄdĂ drtivĂĄ vÄtĹĄina lidĂ pouĹžĂvĂĄ desĂtkovou soustavu. Tato soustava reprezentuje ÄĂsla v mocninĂĄch deseti a byla pravdÄpodobnÄ vyvinuta vzhledem k faktu, Ĺže ÄlovÄk mĂĄ deset prstĹŻ. ZĂĄklad tĂŠto soustavy je 10, neboĹĽ je pouĹžito 10 zĂĄkladnĂch ÄĂslic (0 - 9). Poloha ÄĂslice v ÄĂsle urÄuje jeho vĂĄhu, ÄĂmĹž je moĹžnĂŠ vyjĂĄdĹit ÄĂsla vÄtĹĄĂ neĹž 10. ĹĂkĂĄme, Ĺže 10 je zĂĄkladem tzv. desĂtkovĂŠ soustavy. AvĹĄak je moĹžnĂŠ vybudovat ÄĂselnou soustavu s libovolnĂ˝m celoÄĂselnĂ˝m kladnĂ˝m zĂĄkladem b.
ObecnÄ libovolnĂŠ racionĂĄlnĂ ÄĂslo vyjĂĄdĹenĂŠ v ÄĂselnĂŠ soustavÄ s celoÄĂselnĂ˝m kladnĂ˝m zĂĄkladem b mĹŻĹžeme zapsat jako:
kde mocnina zĂĄkladu bn vyznaÄuje vĂĄhu ÄĂslice Pn, tj.
Pro jednotlivĂŠ ÄĂslice Pi (i = n, n-1, n-2, ..., 2, 1, 0, -1, -2, ...) musĂ platit
Pi je pĹirozenĂŠ ÄĂslo, 0 Ĺ Pi < b.
VĂĄha ÄĂslice se oznaÄuje jeho polohou. NapĹ. v desĂtkovĂŠ soustavÄ:
524,6 = 5 .102 + 2. 101 + 4. 100 + 6. 10-1
DÄlicĂ ÄĂĄrka " , " nĂĄm oddÄluje tzv. celoÄĂselnou a neceloÄĂselnou ÄĂĄst ÄĂsla.
VĂ˝poÄetnĂ stroje mohou bĂ˝t zkonstruovĂĄny na zĂĄkladÄ libovolnĂŠ ÄĂselnĂŠ soustavy, nicmĂŠnÄ vĹĄechny modernĂ poÄĂtaÄe jsou zaloĹženy na binĂĄrnĂ soustavÄ. PĹĂÄina je celkem nasnadÄ, je totiĹž mnohem snadnÄjĹĄĂ rozliĹĄit mezi dvÄma stavy neĹž mezi napĹ. deseti stavy. Ve vĹĄech oborech lidskĂŠ Äinnosti se setkĂĄvĂĄme s pĹĂpady, kdy pĹedmÄty nebo vlastnosti nabĂ˝vajĂ jen dvou uĹžiteÄnĂ˝ch stavĹŻ. Tyto stavy jsou Äasto vzĂĄjemnÄ opaÄnĂŠ: Şårovka svĂtĂ nebo nesvĂtĂ, spĂnaÄ je zapnut nebo vypnut, materiĂĄl je magnetovĂĄn nebo odmagnetovĂĄn, proud obvodem protĂŠkĂĄ nebo neprotĂŠkĂĄ, dĂry v pĂĄsce nebo ĹĄtĂtku jsou nebo nejsou vydÄrovĂĄny atd. Je jednoduĹĄĹĄĂ a mnohem spolehlivÄjĹĄĂ navrhnout obvody, kterĂŠ rozliĹĄujĂ pouze mezi dvÄma stavy (binĂĄrnĂ 0 a binĂĄrnĂ 1) neĹž mezi vĂce, napĹ. 10 stavy (ÄĂslice 0 - 9).
ZĂĄkladem binĂĄrnĂ ÄĂselnĂŠ soustavy je ÄĂslo 2. MoĹžnĂŠ ÄĂslice jsou pouze 0 a 1. Polohy tÄchto ÄĂslic v binĂĄrnĂm ÄĂsle majĂ nĂĄsledujĂcĂ vĂĄhy:
bn = 2n Ä˝ 2 32 22 12 0, 2 -12 -22 -3Ä˝
PomocĂ tohoto schĂŠmatu mĹŻĹžeme takĂŠ pĹevĂĄdÄt dvojkovĂĄ ÄĂsla na dekadickĂĄ, jejichĹž velikost mĹŻĹžeme snadnÄji odhadnout. NapĹ. ÄĂslo 11011 = 1.24 + 1.23 + 0.22 + 1.21 + 1.20 = 27.
Pro opaÄnĂ˝ pĹevod z dekadickĂŠ soustavy na binĂĄrnĂ bylo vypracovĂĄno nÄkolik algoritmĹŻ. Zde si pro pĹĂklad uvedeme metodu postupnĂŠho odeÄĂtĂĄnĂ.
Metoda postupnĂŠho odeÄĂtĂĄnĂ zĂĄleŞà v tom, Ĺže poĹžadovanĂŠ desĂtkovĂŠ ÄĂslo rozdÄlĂme na celoÄĂselnou ÄĂĄst a zbytek a aplikujeme nĂĄsledujĂcĂ postup: od celoÄĂselnĂŠ ÄĂĄsti odeÄteme nejvyĹĄĹĄĂ mocninu dvou, kterĂĄ je jeĹĄtÄ menĹĄĂ neĹž pĹĂsluĹĄnĂŠ ÄĂslo a na pĹĂsluĹĄnou pozici binĂĄrnĂho ÄĂsla napĂĹĄeme jedniÄku. TotĂŠĹž opakujeme se zbytkem s tĂm rozdĂlem, Ĺže nelze-li o jedniÄku menĹĄĂ mocninu dvou odeÄĂst od zbytku tak, aby rozdĂl byl kladnĂ˝, zapisujeme na pĹĂsluĹĄnĂŠ mĂsto dvojkovĂŠho ÄĂsla 0 a postup opakujeme s mocninou dvou opÄt o jedniÄku menĹĄĂm.
PĹĂklad: MĂĄme pĹevĂŠst dekadickĂŠ ÄĂslo 27,125 na jeho dvojkovĂ˝ ekvivalent. ÄĂslo rozdÄlĂme na celoÄĂselnou a desetinou ÄĂĄst 27 + 0,125 a aplikujeme prĂĄvÄ popsanĂ˝ postup:
Pro sÄĂtĂĄnĂ binĂĄrnĂch ÄĂsel platĂ stejnĂŠ zĂĄsady jako pro sÄĂtĂĄnĂ ÄĂsel dekadickĂ˝ch s tĂm, Ĺže pĹenos jedniÄky do vyĹĄĹĄĂho ĹĂĄdu je generovĂĄn nikoliv, kdyĹž souÄet nabude hodnoty 10, ale nabude-li hodnoty 2 (1+1).
(souÄet v prvĂŠm sloupci odprava generuje jedniÄku pĹenosu, ta se sÄĂtĂĄ s dalĹĄĂm sloupcem, ÄĂmĹž je generovĂĄn dalĹĄĂ pĹenos a podobnÄ ve tĹetĂm sloupci). SÄĂtĂĄnĂ v digitĂĄlnĂch poÄĂtaÄĂch probĂhĂĄ v jednotkĂĄch zvanĂ˝ch sÄĂtaÄky.
Pro odÄĂtĂĄnĂ bychom mohli zvolit tentýŞ algoritmus jakĂ˝ pouĹžĂvĂĄme pro odÄĂtĂĄnĂ decimĂĄlnĂch ÄĂsel. Je konstrukÄnÄ moĹžnĂŠ navrhnout a konstruovat odeÄĂtaÄku prĂĄvÄ tak, jako je moĹžnĂŠ konstruovat sÄĂtaÄku. V poÄĂtaÄĂch se vĹĄak tento zpĹŻsob nepouĹžĂvĂĄ, neboĹĽ je moĹžnĂŠ (pakliĹže najdeme vhodnĂ˝ zpĹŻsob vyjĂĄdĹenĂ zĂĄpornĂ˝ch ÄĂsel) zmÄnit znamenĂ menĹĄitele a provĂŠst operaci sÄĂtĂĄnĂ. Abychom si objasnili, jakĂ˝m zpĹŻsobem se v poÄĂtaÄi zĂĄpornĂĄ ÄĂsla vyjadĹujĂ, uvedeme si nejprve pĹĂklad z oboru ÄĂsel dekadickĂ˝ch. PĹedstavme si mechanickĂŠ poÄitadlo, napĹ. poÄitadlo otĂĄÄek u magnetofonu, ĹeknÄme 4-mĂstnĂŠ. OtĂĄÄĂ-li se cĂvka magnetofonu vpĹed, poÄitadlo provĂĄdĂ operaci sÄĂtĂĄnĂ, otĂĄÄĂ-li se zpÄt, poÄitadlo pĹĂsluĹĄnĂŠ otĂĄÄky odeÄĂtĂĄ. PĹedstavme si, Ĺže bychom potĹebovali otoÄit cĂvku o 7 otĂĄÄek zpÄt ve chvĂli, kdy poÄitadlo ukazuje ÄĂslo 0004. Po kaĹždĂŠ otĂĄÄce zpÄt bude poÄitadlo ukazovat postupnÄ
0004
0003
0002
0001
0000
9999
9998
9997
PoÄitadlo tedy neukazuje -3, ale ÄĂslo 9997, kterĂŠ tomuto zĂĄpornĂŠmu ÄĂslu v 4-mĂstnĂŠm vyjĂĄdĹenĂ odpovĂdĂĄ. Abychom si ovÄĹili, seÄteme tĹeba ÄĂslo 5 a 9997.
0005 |
9997 |
(1)0002 |
PakliĹže dodrĹžĂme poÄet mĂst (tedy 4), nemĹŻĹžeme zapoÄĂtat poslednĂ pĹenos a skuteÄnÄ nĂĄm vyĹĄlo ÄĂslo 2, coĹž je vĂ˝sledek odeÄtenĂ 3 od 5. ÄĂslo 9997 nazĂ˝vĂĄme doplĹkem do desĂti k ÄĂslu 3 ve ÄtyĹmĂstnĂŠm vyjĂĄdĹenĂ. PomocĂ doplĹku do desĂti mĹŻĹžeme v dekadickĂŠ soustavÄ pĹevĂŠst operaci sÄĂtĂĄnĂ na operaci odeÄĂtĂĄnĂ.
ObraĹĽme nynĂ pozornost k odeÄĂtĂĄnĂ binĂĄrnĂch ÄĂsel. PĹedpoklĂĄdejme, Ĺže mĂĄme odeÄĂst dvÄ kladnĂĄ ÄĂsla (celĂĄ) o n bitech. NapĹ. dvÄ ÄtyĹbitovĂĄ ÄĂsla (n = 4).
V prvĂŠm pĹĂpadÄ budeme pĹedpoklĂĄdat, Ĺže odeÄĂtĂĄme menĹĄĂ ÄĂslo od vÄtĹĄĂho . PĹenos [0] z (n+1) bitu je nulovĂ˝ a rozdĂl D1 je kladnĂ˝. V pĹĂpadÄ, kdy odÄĂtĂĄme vÄtĹĄĂ ÄĂslo od menĹĄĂho 4bitovĂŠ binĂĄrnĂ ÄĂslo 1110 oznaÄme Zn, [1] je pĹenos z (n + 1) bitu do n-tĂŠho bitu (je jedniÄka) a rozdĂl D2 mĹŻĹžeme napsat jako
D2Â =Â -1*2n + Zn, (7.1)
kde prvnĂ Älen (-1.2n) na pravĂŠ stranÄ je pĹenos (n + 1) bitu do niŞťĂho a ÄĂslo Zn je n-bitovĂŠ ÄĂslo vĂ˝sledku odeÄĂtĂĄnĂ. V naĹĄem pĹĂpadÄ
Zn = 1110
ProtoĹže pro jakĂŠkoliv ÄĂslo o n-bitech Zn platĂ
Z n < 2n,
je rozdĂl D2 zĂĄpornĂ˝ a vĂ˝raz (7.l) nĂĄm reprezentuje zĂĄpornĂŠ ÄĂslo v binĂĄrnĂ soustavÄ.
FormĂĄlnÄ mĹŻĹžeme pĹepsat pro prvnĂ pĹĂpad, tj. odeÄtenĂ vÄtĹĄĂho ÄĂsla od menĹĄĂho, rozdĂl D1 ve tvaru (kladnĂŠ ÄĂslo):
D1Â =Â -0*2n + Zn, (7.2)
a obecnÄ
D1Â =Â -A*2n + Zn, (7.3)
Ze vztahu (7.3) plyne, Ĺže pĹenos z (n + 1) do n-tĂŠho bitu ukazuje na to, zda je rozdĂl zĂĄpornĂ˝ (AÂ = 1) nebo kladnĂ˝ (A = 0).
VraĹĽme se nynĂ k pĹĂpadu zĂĄpornĂŠho rozdĂlu
DÂ =Â -1*2n + Zn,
Jeho velikost mĹŻĹžeme posoudit urÄenĂm absolutnĂ hodnoty
|D2|Â =Â 1*2n - Zn, (7.1)
O urÄenĂ absolutnĂ hodnoty zĂĄpornĂŠho rozdĂlu D si mĹŻĹžeme vyslovit nĂĄsledujĂcĂ vÄtu:
AbsolutnĂ hodnotu zĂĄpornĂŠho rozdĂlu dvou binĂĄrnĂch ÄĂsel
|D|Â =Â -1*2n + Zn
dostaneme tak, Ĺže v ÄĂsle Zn negujeme vĹĄechny bity (tj. za hodnotu 1 dosadĂme 0 a naopak) a k nejmĂŠnÄ vĂ˝znamnĂŠmu bitu pĹiÄteme 1.
DĹŻkaz:
NejvyĹĄĹĄĂ ÄĂslo s n-bity je
2n - 1 = 1111 .....1 (celkovĂ˝ poÄet jedniÄek je n) (7.4)
OznaÄme ÄĂslo Zn* , kterĂŠ nazveme doplnÄk do jedniÄky tak, Ĺže splĹuje rovnici
2n - 1 = Zn + Zn* (7.5)
Ze vztahĹŻ (7.4) a (7.5) plyne, Ĺže ÄĂslo Zn* dostaneme jestliĹže negujeme vĹĄechny bity v Zn.
AbsolutnĂ hodnota zĂĄpornĂŠho rozdĂlu se rovnĂĄ
|D|Â =Â 1*2n - Zn
PĹiÄtÄme a odeÄtÄme na pravĂŠ stranÄ jednotku:
|D| = 1*2n - 1 - Zn + 1 = Zn* + 1
ProtoĹže Zn* dostaneme ze Zn tak, Ĺže vĹĄechny bity negujeme, je dĹŻkaz proveden.
ÄĂslo
Zn´ = Zn* + 1
nazĂ˝vĂĄm doplnÄk do 2 v n-mĂstnĂŠm vyjĂĄdĹenĂ, protoĹže pro nÄj platĂ
2n = Zn´ + Zn. (7.6)
VĹĄimnÄme si, Ĺže v naĹĄem pĹĂkladu s poÄĂtadlem otĂĄÄek u magnetofonu platĂ rovnÄĹž 3+9997=1000=104 (ÄĂslo 9997 je doplĹkem do 10 ve ÄtyĹmĂstnĂŠm vyjĂĄdĹenĂ). ObraĹĽme nynĂ pozornost k vlastnĂmu odeÄĂtĂĄnĂ. PĹedpoklĂĄdejme, Ĺže mĂĄme odeÄĂst dvÄ kladnĂĄ binĂĄrnĂ ÄĂsla x a y
DÂ =Â x - y (7.7)
UvaĹžujme souÄet
S = x + y' (7.8)
kde y' je doplnÄk do dvou ÄĂsla y. Podle definice o doplĹku do 2 je
y' = y* + 1 = 2n - y. (7.9)
DosadĂme do ( 7.8 ) a obdrĹžĂme :
S = x - y + 2n = D + 2n
a pro rozdĂl D z rovnice (7.7) dostaneme
D = S - 2n = x + y' - 2n. (7.10)
Ze vztahu (7.10) plyne, Ĺže rozdĂl mezi binĂĄrnĂmi ÄĂsly x a y
D = x -y
obdrĹžĂme tak, Ĺže pĹiÄteme k ÄĂslu x doplnÄk do dvou ÄĂsla y. Od pĹenosu do n + 1 bitu odeÄteme podle (7.10) jedniÄku. OdeÄtenĂ dosĂĄhneme negovĂĄnĂm pĹenosu. Pak pro vĂ˝slednĂ˝ pĹenos [1] je rozdĂl zĂĄpornĂ˝ a pro pĹenos [0] je kladnĂ˝.
K odeÄĂtĂĄnĂ je tedy moĹžnĂŠ pouĹžĂt stejnĂŠ technickĂŠ prostĹedky jako pĹi sÄĂtĂĄnĂ. DoplnÄk do 2 nĂĄm tedy umoĹžĹuje zobrazenĂ zĂĄpornĂ˝ch ÄĂsel v binĂĄrnĂ soustavÄ.
NechĹĽ y je kladnĂŠ ÄĂslo o dĂŠlce n bitĹŻ. Pak zobrazenĂ ÄĂsla (-y) mĹŻĹžeme provĂŠst nĂĄsledujĂcĂm zpĹŻsobem:
Podle (7.6) platĂ
2n = y + y'
-y = - 2n + y' < 0. (7.11)
To znamenĂĄ, Ĺže zĂĄpornĂŠ ÄĂsla mĹŻĹžeme v binĂĄrnĂm kĂłdu zobrazit tak, Ĺže vytvĂĄĹĂme k jeho absolutnĂ hodnotÄ doplnÄk do dvojky. SkuteÄnost, Ĺže od doplĹku je nutnĂŠ odeÄĂst podle vztahu (7.11) hodnotu -1.2n zobrazĂme tak, Ĺže na n+1. bit pĂĹĄeme 1. V pĹĂpadÄ kladnĂŠho ÄĂsla je ovĹĄem (n+1). bit nulovĂ˝. StejnÄ jako ve vztazĂch (7.2) a (7.3) lze (n+1). bit povaĹžovat za âznamĂŠnkovĂ˝ bitâ, kdy 1 znaÄĂ minus a 0 znaÄĂ plus. JestliĹže zahrneme (n+1). bit do dĂŠlky ÄĂselnĂŠho slova, kterĂŠ mĂĄ pak r = (n + 1) bitĹŻ a vytvoĹĂme doplnÄk do dvojky celĂŠho slova o dĂŠlce r, vytvoĹĂ se nĂĄm znamĂŠnkovĂ˝ bit automaticky pro urÄitĂ˝ obor kladnĂ˝ch a zĂĄpornĂ˝ch ÄĂsel.
PĹedpoklĂĄdĂĄme, Ĺže mĂĄme mikropoÄĂtaÄ s dĂŠlkou slova 12 bitĹŻ, pak povaĹžujeme-li nejvyĹĄĹĄĂ 12. bit za znamĂŠnkovĂ˝, mĹŻĹžeme za pouĹžitĂ notace s dvojkovĂ˝m doplĹkem zobrazit obor ÄĂsel podle tabulky 5.1.
TABULKA 5.1
BinĂĄrnĂ kĂłd | DesĂtkovĂ˝ ekvivalent | ||
0111 | 1111 | 1111 | +2047 |
....... | ....... | ....... | ....... |
....... | ....... | ....... | ....... |
0000 | 0000 | 0011 | +3 |
0000 | 0000 | 0010 | +2 |
0000 | 0000 | 0001 | +1 |
0000 | 0000 | 0000 | 0 |
1111 | 1111 | 1111 | -1 |
1111 | 1111 | 1110 | -2 |
1111 | 1111 | 1101 | -3 |
....... | ....... | ....... | ....... |
....... | ....... | ....... | ....... |
1000 | 0000 | 0000 | -2048 |
NĂĄsobenĂ a dÄlenĂ s binĂĄrnĂmi ÄĂsly se provĂĄdÄjĂ v poÄĂtaÄĂch obvykle podle stejnĂŠho algoritmu jako v dekadickĂŠ soustavÄ. NapĹĂklad :
5 | * | 3 | = | 15 | |||
0 | 1 | 0 | 1 | = | 510 | ||
0 | 0 | 1 | 1 | = | 310 | ||
0 | 1 | 0 | 1 | ||||
0 | 1 | 0 | 1 | ||||
0 | 0 | 0 | 0 | ||||
1 | 1 | 1 | 1 |
Je pochopitelnĂŠ, Ĺže tĂmto zpĹŻsobem mĹŻĹžeme spoÄĂtat pouze vĂ˝sledky, kterĂŠ se dajĂ vyjĂĄdĹit pĹĂsluĹĄnĂ˝m poÄtem bitĹŻ, napĹ. ve ÄtyĹbitovĂŠ reprezentaci je nejvyĹĄĹĄĂm ÄĂslem prĂĄvÄ ÄĂslo 15.