Informácie sa v počítači zobrazujú prostredníctvom hodnôt istých premenných fyzikálnych veličín. V reálnom počítači môžu tieto fyzikálne veličiny nadobúdať hodnoty iba z konečnej množiny hodnôt. Nositeľom hodnoty v elektronických počítačoch je elektrické napätie.
Pri analógovom zobrazení každá hodnota vstupnej veličiny zodpovedá nejakej hodnote fyzikálnej veličiny v počítači (napätiu). Tento spôsob zobrazenia sa používal pri analógových počítačoch, s ktorými sa v praxi už nestretneme.
Obr. 2.1 Princíp analogového zobrazenia informácií
Pri číslicovom zobrazení sa údaje v počítači uchovávajú vo vnútorných pamäťových prostriedkoch, ktoré sa nazývajú registre a pamäte.
Register je usporiadaná n-tica základných pamäťových elementov, ktoré sú dvojhodnotové, t.j. sú schopné uchovávať jednu z dvoch hodnôt H resp. L, kde H označuje vysokú a L nízku hodnotu fyzikálnej veličiny, ktorá je nositeľom informácie.
Týmto dvom hodnotám fyzikálnej veličiny je možné priradiť boolovské (logické) hodnoty 0 a 1 jedným z týchto spôsobov:
L→0 | L→1 |
H→1 | H→0 |
Pozitívna logika | Negatívna logika |
Jedno pamäťové miesto v registri sa nazýva bit, (skratka z binary digit - dvojková číslica). Jednotlivé bity registra budeme označovať číselne sprava doľava, začíname číslom 0. Tento bit budeme nazývať ako nultý, ďalší v poradí bude prvý atď. Nultý bit je najmenej významný, (n-l)-bit je najvýznamnejší. Na obr. 2.2 je znázornený n-bitový register (register s dĺžkou n) s označením jednotlivých bitov.
OBR. 2.2. n-bitový register
Pamäť je množina rovnakých buniek, z ktorých každá je samostatne identifikovateľná svojou adresou. Pre každú bunku pamäte platí rovnaká špecifikácia, aká už bola uvedená pre register.
Údaje v počítači môžu byť vo všeobecnosti rôzne a tak hovoríme o údajových (dátových) typoch. V ďalšom uvedieme základné údajové typy a spôsob ich zobrazenia v číslicovom počítači. Pri číslach uvedieme aj spôsob realizácie základných aritmetických operácií.
Najjednoduchší údajový typ je jednoduchý boolovský typ, pri ktorom má množina hodnôt iba dva prvky, ktoré označujeme symbolmi T a F (True resp. False) alebo 1 a 0. Tento údajový typ je možné priamo zobraziť do registra s dĺžkou n, pričom bude zaberať iba jediný bit. Ostatné bity by boli nevyužité a tak sa často do registra s dĺžkou n zobrazuje n booleovských premenných, z ktorých každej je priradený jeden bit.
Zložitejším údajovým typom je boolovský vektor s dĺžkou k. Ak je k < n, tento vektor je možné priamo zobraziť do registra s dĺžkou n.
Každé číslo je možné vyjadriť v pozičnej číselnej sústave v tvare:
± (an.zn + an-1.zn-1 + ... + a2.z2 + a1.z1 + a0.z0 + a-1.z-1 + a-2.z-2 + ...)
kde:
z - základ danej číselnej sústavy (prirodzené číslo)
ai - koeficient (prirodzené číslo), pričom a < z
Číslo sa zapisuje v skrátenom tvare: ± anan-1an-2 ... a2a1a0a-1a-2 ...
Hodnota každej číslice je jednoznačne daná jej pozíciou v rámci celého čísla.
Najpoužívanejšia je dvojková číselná sústava. Osmičková a šestnástková číselná sústava sa často používa na zrozumiteľnejší zápis dlhších dvojkových čísel.
Dvojková číselná sústava
Základ : 2
Koeficienty: 0, 1
Osmičková číselná sústava
Základ : 8
Koeficienty: 0, 1, 2, 3, 4, 5, 6, 7
Desiatková číselná sústava
Základ : 10
Koeficienty: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Šestnástková číselná sústava
Základ : 16
Koeficienty: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
Prevod z desiatkovej do inej číselnej sústavy sa najjednoduchšie urobí postupným celočíselným delením desiatkového čísla (resp. jeho podielov) základom požadovanej číselnej sústavy. Zvyšok po delení je jednou číslicou čísla v požadovanej číselnej sústave, pričom prvý zvyšok bude v najnižšom ráde. Delenie pokračuje dovtedy, kým nie je celočíselný podiel menší ako základ novej číselnej sústavy. Tento posledný podiel je potom poslednou číslicou čísla v novej číselnej sústave.
Príklad:
Prevod desiatkového čísla 13 do dvojkovej číselnej sústavy:
13:2 = 6 : 2 = 3 : 2 = 1Číslo 13 v dvojkovej číselnej sústave: 1101
Zvyšok po delení: 1 0 1 1
Prevod z inej číselnej sústavy do desiatkovej je veľmi jednoduchý, váhu každej číslice vyjadríme dekadicky a spočítame.
Príklad:
Vykonajme prevod osmičkového čísla (3427) do desiatkovej číselnej sústavy. Ako operátor pre súčin použijeme znak "*" :
3*83 + 4*82 + 2*81 + 7*80 =
= 3*512 + 4*64 + 2*8 + 7*1 =
= 1536 + 256 + 16 + 7 = 1815
Priamy prevod z dvojkovej do osmičkovej a šestnástkovej číselnej sústavy využíva skutočnosť, že číslo 8 je treťou a číslo 16 štvrtou mocninou čísla 2, to znamená, že nemusíme robiť medziprevod do desiatkovej číselnej sústavy.
Pri prevode z dvojkovej do osmičkovej číselnej sústavy rozdelíme dvojkové číslo na trojice bitov sprava. Jednotlivé trojice potom vyjadríme osmičkovými číslicami a dostaneme výsledok.
Prevod z dvojkovej do šestnástkovej číselnej sústavy je rovnaký, ale namiesto trojíc sa vytvoria štvorice.
Príklad:
Vykonajme prevod dvojkového čísla (100101101110010110) do šestnástkovej číselnej sústavy:
Rozdelíme číslo na štvorice bitov sprava: 10 0101 1011 1001 0110
Vyjadríme štvorice šestnástkovými číslicami: 2 5 B 9 6
Prevod zo šestnástkovej resp. osmičkovej číselnej sústavy do dvojkovej je opačný - každú číslicu vyjadríme trojicou resp. štvoricou bitov.
Pod prirodzenými číslami budeme rozumieť celé kladné čísla vrátane nuly. Na ich zobrazenie sa používa prirodzený dvojkový kód.
Rozsah zobrazenia pre n-bitový register: <0, 2n-l>
Základné aritmetické operácie
Uvedieme príklady na operácie sčítania, odčítania, násobenia a delenia
s prirodzenými číslami, zobrazenými v prirodzenom dvojkovom kóde. Kvôli
jednoduchosti bude použitá šírka slova n=4.
Sčítanie
Pravidlá na sčítanie jednotlivých bitov:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0 (prenos 1 do vyššieho rádu)
Sčítanie začíname sprava (od najnižšieho rádu), ak nastane prenos, musí sa pripočítať k ďalšiemu (vyššiemu) rádu.
Príklad:
0110 (6)
+ 0101 (5)
-----------
1011 (11)
V prípade, ak nastane prenos z najvyššieho rádu, nastalo preplnenie (pretečenie, overflow) a výsledok je neplatný. Na realizáciu operácie sčítania sa používajú dvojkové sčítačky.
Odčítanie
Pravidlá na odčítanie jednotlivých bitov:
0 - 0 = 0
0 - 1 = 1 (prenos 1 do vyššieho rádu)
1 - 0 = 1
1 - 1 = 0
Odčítanie sa začína sprava (od najnižšieho rádu), ak nastane prenos, musí sa odpočítať od ďalšieho (vyššieho) rádu.
Príklad:
0110 (6)
- 0101 (5)
----------
0001 (1)
V prípade, ak nastane prenos z najvyššieho rádu, nastalo podtečenie (underflow) a výsledok je neplatný. Na realizáciu operácie odčítania sa používajú dvojkové odčítačky.
Príklad dvojkovej sčítačky a odčítačky je na interaktívnej animácií.
Násobenie
Podľa bežne používaného algoritmu sa operácia násobenia vykonáva spočítaním posunutých čiastočných súčinov. Čiastočný súčin je násobok prvého činiteľa číslicou druhého činiteľa. Násobenie dvojkových čísel je jednoduchšie ako v iných číselných sústavách, pretože čiastočný súčin môže mať buď hodnotu 0 (ak je číslica druhého činiteľa 0) alebo sa rovná prvému činiteľovi (ak je číslica druhého činiteľa 1).
Príklad:
0110 (6)
0101 (5)
------------
0110
0000
0110
0000
------------
0011110 (30)
Pri realizácii násobičky sa často používajú sčítačky s dvoma vstupnými operandmi a tak sa celkový výsledok dostane postupne spočítaním dvojíc čiastočných súčinov. Tiež sa používa paralelná násobička, realizovaná pomocou pamäte.
V prípade, ak sú n-bitové operandy, výsledok môže mať až 2n bitov.
Delenie
Podľa bežne známeho algoritmu delenia sa dve čísla delia odpočítavaním násobkov deliteľa od časti delenca, resp. od jeho čiastočných zvyškov.
Prvá časť delenca sa vytvorí takým spôsobom, že sa berú číslice delenca
zľava dovtedy, kým nedostaneme číslo, ktoré je väčšie ako deliteľ. Od
tejto časti sa odpočíta najväčší možný násobok deliteľa. Číslo, ktoré
udáva, koľkokrát sa deliteľ nachádza v časti delenca, je súčasne
číslicou podielu v danom ráde. K zvyšku po odpočítaní sa pridá ďalšia
číslica delenca a tým dostaneme novú časť delenca - čiastočný zvyšok. Tento sa porovná s deliteľom. Ak je menší ako deliteľ, číslica podielu v tomto ráde je 0. V opačnom prípade na určenie číslice podielu platí to, čo už bolo uvedené. Pri celočíselnom delení je delenie skončené, ak je posledný čiastočný zvyšok menší ako deliteľ.
Na realizáciu operácie delenia v číslicových systémoch sú známe viaceré
algoritmy. Delenie dvojkových čísel je jednoduchšie ako delenie čísel v
iných číselných sústavách, pretože číslica podielu v danom ráde je 0 alebo 1
a netreba odhadnúť, koľkokrát sa deliteľ nachádza v časti delenca resp.
v čiastočnom zvyšku. Sú tu len dve možnosti - deliteľ sa nenachádza v
čiastočnom zvyšku ()e menší), alebo sa v ňom nachádza (je väčší alebo
sa rovná). V prvom prípade je číslica podielu 0, v druhom 1. Výsledkom celočíselného delenia sú dve čísla - podiel a zvyšok po delení. Zvyšok po delení môže byť nulový, ak je nenulový, je vždy menší ako deliteľ.
Príklad:
(11) (2) (5)
1011 : 10 = 101
- 10 (deliteľ sa nachádza v časti delenca - prvá číslica podielu je 1)
------
001 (čiastočný zvyšok)
- 00 (deliteľ sa nenachádza v čiastočnom zvyšku - číslica podielu je 0)
------
0011 (čiastočný zvyšok)
- 10 (deliteľ sa nachádza v čiastočnom zvyšku - číslica podielu je 1)
------
01 (zvyšok po delení)
Na zobrazenie celých čísel sa využíva niekoľko kódov, ktoré sa líšia tak rozsahom zobrazenia, ako aj svojou vhodnosťou pre rôzne aritmetické operácie. Uvedieme najpoužívanejšie kódy, a to priamy kód, inverzný kód, doplnkový kód a predpätý kód.
Priamy kód
V priamom kóde sa najvyšší bit používa ako znamienkový bit. Kladné čísla sa zobrazujú rovnako, ako prirodzené čísla, záporné číslo sa líši od kladného tým, že znamienkový bit má jednotkový.
Rozsah zobrazenia pre n-bitový register: <-2n-1+1, 2n-l-1>. Nevýhodou je, že číslo 0 má dva obrazy.
Príklad:
číslo 6 v priamom kóde : 0110
číslo -6 v priamom kóde : 1110
Základné aritmetické operácie
Operácie sčítania a odčítania je možné vykonávať iba s číslami s rovnakým znamienkom, pričom znamienkový bit do operácie nevstupuje. Prenos do znamienkového bitu signalizuje pretečenie (preplnenie) resp. podtečenie a výsledok je neplatný.
Operácie násobenia a delenia je možné vykonávať s číslami s ľubovoľným znamienkom, pričom znamienkový bit do operácie nevstupuje. Znamienko výsledku sa určí na základe znamienok obidvoch operandov.
Inverzný kód
V inverznom kóde má najvyšší bit opäť význam znamienka, ale na rozdiel od priameho kódu vstupuje do operácie. Kladné čísla sa zobrazujú rovnako, ako prirodzené čísla. Záporné číslo sa získa takým spôsobom, že kladné číslo s rovnakou absolútnou hodnotou sa invertuje bit po bite. (Invertovať znamená zmeniť hodnotu každého bitu na opačnú.)
Rozsah zobrazenia je rovnaký, ako v priamom kóde. Číslo 0 má opäť dva obrazy.
Príklad:
číslo 6 v inverznom kóde : 0110
číslo -6 v inverznom kóde : 1001
Základné aritmetické operácie
V tomto kóde je možné vykonávať operácie sčítania a odpočítania s číslami s ľubovoľným znamienkom, v niektorých prípadoch je však nutné vykonať tzv. kruhový prenos do najnižšieho rádu. Operácia odčítania býva realizovaná ako pripočítanie čísla s opačným znamienkom a potom je možné použiť tak pre sčítanie, ako aj pre odčítanie sčítačku. Nepoužíva sa pre operácie násobenia a delenia.
Doplnkový kód
V doplnkovom kóde, tak ako v inverznom kóde, má najvyšší bit význam znamienka a tiež vstupuje do operácie. Kladné čísla sa zobrazujú rovnako, ako prirodzené čísla. Záporné číslo v doplnkovom kóde získame zo záporného čísla v inverznom kóde tak, že k nemu pripočítame jedničku v najnižšom ráde. Výsledkom je vlastne doplnok absolútnej hodnoty záporného čísla do čísla 2n.
Rozsah zobrazenia pre n-bitový register: <-2n-l, 2n-1-1>
U tohto kódu má číslo 0 iba jediný obraz.
Príklad:
číslo 6 v doplnkovom kóde : 0110
číslo -6 v doplnkovom kóde : 1010
Základné aritmetické operácie
V tomto kóde je možné vykonávať operácie sčítania a odčítania s číslami s ľubovoľným znamienkom, pričom nie sú nutné žiadne korekcie. Pretečenie resp. podtečenie je indikované rôznymi hodnotami prenosov do najvyššieho (znamienkového) bitu a z najvyššieho bitu.
Operácia odčítania býva realizovaná ako pripočítanie čísla s opačným
znamienkom a potom je možné použiť tak pre sčítanie, ako aj pre
odčítanie sčítačku.
Kód je nevhodný pre priamu realizáciu operácie delenia. Je však známy algoritmus pre operáciu násobenia [1].
Príklad: Máme 4-bitový register. Rozsah zobrazenia v doplnkovom kóde je <-8, 7>.
Skontrolujme platnosť výsledku pri operácii sčítania nasledovných čísel:
0011 (3)
+ 0100 (4)
-------
0111 (7)
Prenos do najvyššieho rádu bol 0, prenos z najvyššieho rádu bol 0, takže výsledok je platný.
Príklad:
1101 (-3)
+ 1100 (-4)
-------
1 1001 (-7)
Prenos do najvyššieho rádu bol 1, prenos z najvyššieho rádu bol takisto 1, takže výsledok je platný. (Pretože máme iba 4-bitový register, prenos z najvyššieho rádu sa nezobrazí, je uvedený iba kvôli tomu, aby bolo vidno, že vznikol.)
Príklad:
1101 (-3)
+ 0110 (6)
-------
1 0011 (3)
Prenos do najvyššieho rádu bol 1, prenos z najvyššieho rádu bol takisto 1, takže výsledok je platný.
Príklad:
0110 (6)
+ 0101 (5)
-------
1011
Prenos do najvyššieho rádu bol 1, prenos z najvyššieho rádu bol 0, takže výsledok je neplatný (nastalo preplnenie). Naozaj, súčet je (11) a to je už mimo intervalu zobrazenia. Okrem toho, 1 v najvyššom ráde signalizuje v danom kóde záporné číslo a nie je možné, aby sme pri sčítaní dvoch kladných čísel dostali výsledok záporný.
Príklad:
1101 (-3)
+ 1010 (-6)
-------
1 0111
Prenos do najvyššieho rádu bol 0, prenos z najvyššieho rádu bol 1, takže výsledok je neplatný (nastalo podtečenie). Súčet je (-9) a to je mimo intervalu zobrazenia.
Predpätý kód
Obraz čísla v predpätom kóde sa získa pripočítaním posunutia tak ku kladnému, ako aj k zápornému číslu. Potom je jednoduché porovnanie veľkosti dvoch čísel bez ohľadu na ich znamienko. Tento kód sa obyčajne používa na zobrazenie exponentov pri číslach zapísaných v pohyblivej rádovej čiarke. Napr. pri numerickom koprocesore rodiny 80x87 je pri 8-bitovom exponente hodnota posunutia 127.
Príklad: Máme 4-bitový register a nech posunutie = 8.
číslo 6 v predpätom kóde : 1110
číslo -6 v predpätom kóde : 0010
Reálne čísla je v zásade možné zobraziť dvoma spôsobmi, a to v pevnej a v pohyblivej rádovej čiarke.
Pri zobrazení v pevnej rádovej čiarke je istý počet bitov napevno určený na zobrazenie celej časti čísla a istý počet na zobrazenie zlomkovej časti. Toto usporiadanie je však pri veľkom rozsahu čísel veľmi nevýhodné, či už z hľadiska rozsahu zobrazenia, ako aj požadovanej presnosti. Z týchto dôvodov sa v súčasnosti používa takmer výhradne zobrazenie v pohyblivej rádovej čiarke.
Číslo v pohyblivej rádovej čiarke je zobrazené v tvare: M . zE
kde M je mantisa (obyčajne pravý zlomok),
z - základ použitej číselnej sústavy (obyčajne 2),
E - exponent (celé číslo).
Výhodou tohto zobrazenia reálnych čísel je možnosť dosiahnutia veľkého dynamického rozsahu zobrazenia, pričom je rovnaká presnosť nezávisle od veľkosti zobrazovaného čísla.
Pri súčasných procesoroch sa pritom ešte v závislosti od požadovanej presnosti a rozsahu zobrazenia používa niekoľko formátov pre čísla v pohyblivej rádovej čiarke. Tak napr. pri koprocesoroch rodiny 80x87 existujú tri formáty zobrazenia: jednoduchá presnosť, dvojnásobná presnosť a rozšírená presnosť.
V prvom prípade je vyhradených pre mantisu 24 a pre exponent 8 bitov, v druhom prípade 55 a 11 bitov a v treťom prípade dokonca 65 a 15 bitov.
Rozsah zobrazenia v treťom prípade predstavuje približne:
0,34 x 104932 ≤ |x| ≤ 1,1 x 104932
Základné aritmetické operácie
Máme dve čísla A a B, zobrazené v pohyblivej rádovej čiarke v tvare:
A = MA . zEA
B = MB . zEB
A . B = MA.zEA . MB.zEB = MA . MB . z(EA+EB)
A / B = (MA.zEA) / (MB.zEB) = (MA / MB). z(EA-EB)
Aby sme mohli sčítať resp. odčítať mantisy pri operácii A+B resp. A-B,
musíme najskôr upraviť zobrazenie čísel takým spôsobom, aby exponenty
mali rovnakú hodnotu. Ak je mantisa pravý zlomok, je zrejmé, že
exponenty musia mať hodnotu väčšieho.
V opačnom prípade by prišlo pri úprave k pretečeniu mantisy. Nech v nasledujúcich príkladoch je EA väčší ako EB.
A + B = MA.zEA + MB.zEB = MA.zEA + MB.z(EB-EA+EA) = MA.zEA + MB.zEA.z(EB-EA) = (MA + MB.z(EB-EA)).zEA
A - B = (MA - MB.z(EB-EA)).zEA
Realizácia zložitejších matematických funkcií
Zložitejšie funkcie sa obyčajne realizujú rozvojom funkcie do číselného radu, v ktorom sa nachádzajú iba základné aritmetické operácie. Doba výpočtu závisí v značnej miere od požadovanej presnosti.
Príklad:
Funkcia sin(x):
sin(x) = x - x3/3! + x5/5! - x7/7! + ... + (-l)n.x(2n+1)/(2n+1)! + ...
Príklad:
Funkcia ln(1+x):
ln(1+x) = x - x2/2 + x3/3 - x4/4 + ... + (-l)n.x(n+1)/(n+1) + ...
x∈(-l, 1)
Desiatkové čísla predstavujú špeciálnu triedu celých čísel a často sa spracúvajú priamo, bez prevodu do dvojkovej číselnej sústavy. Z tohto dôvodu sa používajú aj špeciálne kódy na ich zobrazenie, a to BCD (Binary Coded Decimal) kód a zhustený BCD kód.
Pri zobrazení v štandardnom BCD kóde sa do registra dĺžky jednej slabiky (8 bitov) zobrazí jedna desiatková číslica. Horné štyri bity sú nulové, v dolných štyroch bitoch je zakódovaná jedna číslica desiatkového čísla v prirodzenom dvojkovom kóde.
Príklad: Zobrazme číslo 1463 v BCD kóde.
Je nutné použiť štyri slabiky:
00000001 00000100 00000110 00000011
Pri zobrazení v zhustenom BCD kóde sú v jednej slabike zakódované dve desiatkové číslice.
Príklad: Zobrazme číslo 1463 v zhustenom BCD kóde.
Stačia nám dve slabiky:
00010100 01100011
Ak sa používajú aj záporné čísla, na znamienko je vyhradená obyčajne celá jedna slabika.
Základné aritmetické operácie
S číslami v BCD kóde je možné vykonávať operácie sčítania a odčítania rovnako, ako s prirodzenými číslami. Vzhľadom na to, že v každej štvorici bitov je však zobrazené iba číslo v rozsahu 0 až 9, po vykonaní operácie je nutné v každej štvorici bitov vykonať tzv desiatkovú korekciu. Táto korekcia spočíva v pripočítaní čísla 6. Začína sa vykonávať od najnižšej štvorice a vykoná sa v každej štvorici, v ktorej je zobrazené číslo väčšie ako 9. Prenos do vyššieho rádu je nutné rešpektovať. Niektoré súčasné typy procesorov majú už priamo vo svojom inštrukčnom súbore inštrukciu pre deiatkovú korekciu (napr. procesory rodiny 80x86).
Príklad:
Máme 16-bitový register. V tomto registri je rozsah zobrazenia v zhustenom BCD kóde 0 až 9999. Spočítajme nasledovné čísla:
0001 0010 0011 0100 (1234)
+ 0101 0110 0111 1000 (5678)
---------------------
0110 1000 1010 1100 výsledok pred korekciou
+ 0110 prvá korekcia
---------------------
0110 1000 1011 0010
+ 0110 druhá korekcia
---------------------
0110 1001 0001 0010 (6912) konečný výsledok, ďalšia korekcia už nie je nutná
Znakmi budeme v ďalšom rozumieť číslice, písmená a tzv. špeciálne znaky, napr. ?, !, §, CR, LF atď. Všetky tieto znaky musia byť nejakým spôsobom zakódované, aby ich bolo možné zobraziť v číslicovom počítači. Kódovaním rozumieme priradenie istého dvojkového čísla každému znaku. V súčasnosti sa používajú niektoré štandardné kódy, pri osobných počítačoch napr. kód ASCII (American Standard Code for Information Interchange). Tento kód je 7-bitový (najvyšší bit je nulový) a obsahuje písmená latinskej abecedy, číslice a niektoré špeciálne znaky (obr. 2.3). Pretože však neobsahuje všetky znaky, ktoré tá-ktorá národná abeceda potrebuje, používajú sa tzv. rozšírené (extended) ASCII kódy. Rozšírený ASCII kód je 8-bitový, obsahuje všetky znaky štandardného ASCII kódu, pridané vlastné špeciálne znaky (napr. písmená s diakritikou) majú najvyšší bit jednotkový.
Obr. 2.3 ASCII kód
Hodnotu znaku v ASCII kóde zistíme z tabuľky takým spôsobom, že
spojíme jemu zodpovedajúce dvojkové číslo z prvého riadku (tým získame
horné štyri bity) s dvojkovým číslom v prvom stĺpci (tým dostaneme
spodné štyri bity).
Tak napríklad znaku + zodpovedá dvojkové číslo 00101011.