crzp.uniag.skcrzp.uniag.sk/.../a/05755d3a2f1f4a04921922e20c4d7b51.docx · web viewpráca môže...
TRANSCRIPT
SLOVENSKÁ POĽNOHOSPODÁRSKA UNIVERZITA
V NITRE
TECHNICKÁ FAKULTA1130650
APLIKÁCIA „ČÍSLA A ČÍSELNÉ SÚSTAVY“
2011 Patrik Andrásko
SLOVENSKÁ POĽNOHOSPODÁRSKA UNIVERZITA
V NITRE
TECHNICKÁ FAKULTA
APLIKÁCIA „ČÍSLA A ČÍSELNÉ SÚSTAVY“
BAKALÁRSKA PRÁCA
Študijný program: 2386700 Manažérstvo kvality produkcie
Študijný odbor: Kvalita produkcie
Školiace pracovisko:Katedra elektrotechniky, automatizácie a
informatiky
Školiteľ: doc. Ing. Zuzana Palková, PhD.
Nitra 2011 Patrik Andrásko
Čestné vyhlásenie
Podpísaný Patrik Andrásko vyhlasujem, že som záverečnú prácu na tému
„Aplikácia: Čísla a číselné sústavy“ vypracoval samostatne s použitím uvedenej
literatúry.
Som si vedomý zákonných dôsledkov v prípade, ak uvedené údaje nie sú pravdivé.
V Nitre 15. apríla 2010
Patrik Andrásko
Abstrakt
Práca sa zaoberá číselnými sústavami a má za cieľ oboznámiť študentov technických
vied s problematikou čísel a číselných sústav. Prácu možno rozdeliť na dve časti.
V prvej časti – teoretickej, sa autor venuje histórií číselných sústav a predstaveniu
v súčasnosti štyroch najpoužívanejších. Na konkrétnych príkladoch približuje spôsob
prevádzania čísel medzi jednotlivými číselnými sústavami. Práca sa taktiež zameriava
na využitie číselných sústav pri kódovaniach čísel v počítači.
Hlavným cieľom práce je realizácia aplikácie, ktorá bude slúžiť študentom ako
elektronická študijná pomôcka na ozrejmenie vzájomných prevodov čísel. O vysvetlenie
funkčnosti tejto aplikácie sa autor venuje v druhej časti práce, kde opisuje spôsob ako
danú prácu realizoval a tiež zvolené vývojové prostredie. Výsledkom práce je aplikácia,
ktorá má za úlohu previesť číslo do zvolenej číselnej sústavy a zobraziť výsledok spolu
s postupom.
Kľúčové slová: čísla, číselné sústavy, prevod, študijná pomôcka, java.
Abstract
This work deals with numeric systems and aims to familiarize students of technical
sciences with problems of number and numerical systems. Work can be divided into
two parts. In the first part - theoretical, the author addresses to the history and
presentation of numerical systems in the four most widely used today. On the specific
examples explains converting numbers between different numerical systems. The work
also aims to use the numerical system in coding numbers on the computer.
The main objective of this work is the realization of applications that will be used by
students as an electronic study aid to clarify the mutual transfer of numbers. Author in
the second part explains the functionality of this application, when he describes the way
work is done and given also the chosen development environment. The result is an
application that is designed to transfer the number to the chosen numerical system and
view the result along with the procedure.
Keywords: numbers, numerical systems, transfer, study aid, java.
Obsah
Zoznam skratiek a značiek.............................................................................................8
Úvod..................................................................................................................................9
1 Súčasný stav riešenej problematiky doma a v zahraničí...................................11
1.1 Číselné sústavy v minulosti..............................................................................11
1.2 Číselné sústavy v súčasnosti.............................................................................16
1.2.1 Desiatková číselná sústava........................................................................16
1.2.2 Dvojková číselná sústava..........................................................................18
1.2.3 Osmičková číselná sústava........................................................................23
1.1.1 Šestnástková číselná sústava.....................................................................25
1.1.2 Prevody medzi nedesiatkovými číselnými sústavami...............................28
1.1.3 Ďalšie typy číselných sústav......................................................................31
1.3 Kódovanie čísel v počítači................................................................................32
1.1.4 BCD kód (8421)........................................................................................32
1.1.5 ASCII (American Standart Code for Information Interchange)................33
1.1.6 UNICODE a UTF – 8................................................................................34
2 Cieľ práce...............................................................................................................35
3 Metodika práce......................................................................................................36
4 Výsledky práce.......................................................................................................38
4.1 Všeobecne o Jave a prečo práve Java...............................................................38
4.2 Aplikácia – prevodník číselných sústav............................................................40
4.2.1 Popis zdrojového kódu..............................................................................40
1.2.2 Popis programu z pohľadu používateľa....................................................50
5 Záver.......................................................................................................................54
6 Zoznam použitej literatúry...................................................................................55
7 Prílohy....................................................................................................................57
Zoznam skratiek a značiek
ASCII – (American Standart Code for Information Interchange)
štandardný kód pre výmenu informácií
Bajt – (byte) ľubovoľný znak v 8 – bitovom kódovaní
BCD – (Binary Coded Decimal) binárne kódovaná desiatková sústava
Bit – základná jednotka informácie [b]
BSOD – (Blue screen of death) označenie chybového hlásenia operačného systému
Microsoft Windows
EBCDI – (Extended Binary Coded Decimal Interchange) rozšírený BCD kód
GUI – (Graphical User Interface) grafické používateľské rozhranie
JDK – (Java Development Kit) vývojové nástroje pre programovanie v Jave
JVM – (Java Virtual Machine) javovský virtuálny stroj
MS – softvérová firma Microsoft
NetBeans – bezplatné vývojové prostredie pre tvorbu aplikácií v jazyku Java
UNICODE – medzinárodný štandard pre univerzálne kódovanie znakov pre počítače
UTF – 8 – (Unicode Transformation Format) 8 - bitové bezstratové kódovanie
variabilnou dĺžkou určené pre Unicode znaky
Úvod
Bakalárska práca pojednáva o číselných sústavách. Cieľom práce je opísať základné
princípy číselných sústav a následne vytvoriť fungujúcu aplikáciu – študijnú pomôcku na
prevádzanie čísel v rôznych číselných sústavách. Keďže v desiatkovej sústave vieme
počítať už odmalička, je to pre nás – pre ľudí najprirodzenejšia číselná sústava. Pre
počítače by však bolo neefektívne pracovať v tejto sústave, a preto sa používajú sústavy –
dvojková, osmičková a šestnástková. Pre pochopenie systému, akým počíta samotný
počítač je nutné, aby študenti zaujímajúci sa o problematiku číselných sústav vedeli
samostatne a rýchlo prevádzať čísla v jednotlivých číselných sústavách. Výsledkom práce
je aplikácia určená primárne študentom ako elektronická metodická pomôcka, ktorá by im
mala pomôcť objasniť problematiku číselných sústav. Práca môže slúžiť spolu s priloženou
aplikáciou ako učebný text pre študentov, ktorý sa hlbšie zaujímajú o číselné sústavy.
Práca oboznamuje študentov aj s využitím číselných sústav v matematike a informatike.
Zároveň je aj návodom pre vyučujúceho informatiky na vyučovanie tematického celku
číselné sústavy.
Text je rozdelený do viacerých kapitol a podkapitol. V podkapitole nazvanej „Číselné
sústavy v minulosti“ sa oboznamujeme so vznikom a používaním číselných sústav od
prvých náznakov počítania s kamienkami a vrúbkami až po sústavy starodávnych národov.
Ďalšia kapitola „Číselné sústavy v súčasnosti“ hovorí o jednotlivých typoch číselných
sústav používaných v dnešnom vyspelom svete. Táto časť by mala pomôcť študentom
pochopiť princíp prevádzania čísel medzi jednotlivými číselnými sústavami. Na vhodných
príkladoch sa tu vysvetľuje postup pri prevode. Nasledujúca podkapitola sa venuje
kódovaniu čísel v počítačoch. Táto podkapitola hovorí o binárne kódovanej desiatkovej
sústave – BCD, a taktiež jej rozšíreným kódovaniam ASCII, UNICODE a UTF - 8.
V kapitole „Výsledky práce“ sa práca venuje samotnému využitiu programových
prostriedkov na zostavenie fungujúcej aplikácie (prevodníka číselných sústav). Aplikácia
na prevod číselných sústav patrí do skupiny s názvom Aplikačný softvér. Jedná sa o
skupinu programov, ktoré riešia konkrétne úlohy v organizáciách alebo podnikoch. Ide
o širokú skupinu programov, v ktorých sa premietajú konkrétne požiadavky užívateľov.
V našom prípade ide o aplikáciu, ktorá rieši prevádzanie čísel medzi jednotlivými
číselnými sústavami a je určená pre študentov. Aplikáciu možno použiť ako študijnú
9
pomôcku na vizualizáciou prevodov spomínaných v podkapitole „Číselné sústavy
v súčasnosti“.
10
1 Súčasný stav riešenej problematiky doma a v zahraničí
Číslo definujeme ako abstraktnú entitu, ktorá sa používa na opis množstva. Je to tiež
rad symbolov, kde má každý symbol definovanú hodnotu. Číslo môžeme definovať aj ako
súčet matematických výrazov. Každý výraz je daný súčinom číselného symbolu a jeho
hodnoty (váhy). (Hruška, 1960)
Číselná sústava je sústava znakov a pravidiel k zobrazovaniu čísel a vykonávanie
operácií s nimi. Pomocou základu a jeho mocnín môžeme vyjadriť ľubovoľné číslo.
1.1 Číselné sústavy v minulosti
V súčasnosti používaný spôsob zápisu prirodzených čísel v desiatkovej sústave je len
výsledkom dlhého a komplikovaného vývoja. Jeden z najstarších a najjednoduchších
spôsobov zápisu prirodzeného čísla spočíval v použití jedného znaku. Z dostupných
pomôcok to mohol byť napr. zárez na kosti (Obr. 1), kamennej doske, drevenej tyči a pod.
Používali sa taktiež uzly na šnúre, usporiadané kamienky, či prsty na rukách a nohách.
Dôkazom, že ľudia už v dobe kamenej mali potrebu si zaznamenávať číselné hodnoty, je
nález vlčej kosti (Obr. 2) v okolí obce Dolní Věstonice, ktorá obsahuje 55 zárezov.
(Palumbíny, 1996)
Obr. 1 Zárezy na kosti (http://www.fi.muni.cz/)
11
Obr. 2 Nález vlčej kosti (http://www.vesmir.cz)
Pre vyjadrenie veľkých čísel to však bolo nepraktické. V snahe zlepšovať číselné
sústavy preto nezostávalo nič iné ako zápis zjednodušiť. Skupiny s rovnakým počtom
znakov tvorili zoskupenia alebo boli nahradené jedným znakom. V prípade, keď hodnota
použitých znakov nezávisí na ich pozícií v zápise, hovoríme o nepozičnej číselnej
sústave. (Klimeš, 2005)
Medzi typických predstaviteľov týchto sústav môžeme zaradiť sústavy:
a) egyptská – každý z číselných rádov bol nahradený určitým číselným znakom:
Obr. 3 Egyptská nepozičná číselná sústava
Pre vyjadrenie čísla 724 sa použije 7 znakov pre stovky ρ, 2 znaky pre desiatky ∩ a 4
znaky pre jednotky. (Benďák, cit. 2010-11-11)
12
b) grécka - herodiánska symbolika (Tab. 1) bola v Grécku používaná do 1 storočia p.
n. l.
Tab. 1 Herodiánska symbolika
1 5 10 50 100 500 1000 5000 10000
Táto symbolika bola však neskôr nahradená iným spôsobom zápisu, tzv. jónsky zápis
(Tab. 2). Vyznačoval sa tým, že pre zápis čísel sa využívali znaky abecedy (0 – 9, 10 – 90,
100- 900). Pridaním čiarky nad znak (apostrof) sa zapisovali tisíce a pridaním písmena M
desaťtisíce. (Palumbíny, 1996)
Tab. 2 Jónsky zápis
1 2 3 4 5 6 7 8 9 10
α β γ δ ε ς ξ ν ϑ ι
c) rímska – predstavuje prechod od nepozičných číselných sústav k sústavám
pozičným, kde umiestnenie niektorých znakov ma rozhodujúci význam, napr. IX
a XI. Je to jedna z mála sústav, ktorá sa používa dodnes (Tab. 3).
Tab. 3 Rímska číselná sústava
1 5 10 50 100 500 1 000 10 000
I V X L C D M M
13
Pozičná (polyadická) číselná sústava je sústava, kde tá istá veličina môže vyjadrovať
rozličné hodnoty v závislosti od svojej polohy (pozície) v zápise čísla. Vytvorenie
pozičných číselných sústav patrí medzi najvýznamnejšie objavy v histórií ľudstva. Každé
jedno číslo je možné zapísať pomocou ohraničeného množstva znakov. (Znám, 1975)
Pozičné číselné sústavy poznáme:
a) sumerská, babylonská - počiatky pozičnej sústavy siahajú do obdobia starých
Sumerov žijúcich v južnej Mezopotámií. Pre zapisovanie číslic do hlinených tabúl
(klinové písmo) sa spočiatku používal znak . Jeho množením sa dali zapísať
číslice 1 až 9. Pre číslo 10 sa neskôr použil znak . Desiatková tabuľka teda
vyzerá nasledovne (Tab. 4):
Tab. 4 Sumerská číselná sústava
1 2 3 4 5 6 7 8 9 10
Príklad zápisu čísla 35:
Sumeri ako prví rozdelili deň na 24 hodín, hodinu na 60 minút a minútu na 60 sekúnd.
Pred 4000 rokmi tak vytvorili systém počítania času, ktorý funguje až dodnes. Nevýhodou
sústavy však bola neexistencia nuly. Sumerská sústava tiež umožňovala zapisovať čísla iba
v rozsahu 0 až 59. Preto Babylončania neskôr prebrali sumerskú sústavu a vylepšili ju.
Z jednotiek vytvorili jednotky vyššieho rádu a ich kombináciou umožnili zapisovať aj čísla
väčšie ako 59. Je to sústava, ktorá má základy 10 a 60. (Palumbíny, 1996)
Sústavu so základom 60 využívame aj v súčasnosti na reprezentáciu časových údajov a
pri meraní uhlov. Za základnú jednotku považujeme jednotku sekundy, ktorá môže byť
časová alebo uhlová. Pri hodnotách 0 – 9 uvažujeme ako o jednotke nultého rádu. Jednotka
vyššieho rádu je tvorená 60 sekundami a nazýva sa minúta. Hodinu alebo stupeň potom
tvorí 60 minút. O vyšších jednotkách už neuvažujeme. (Hruška, 1960)
14
Príklady zápisov časových a uhlových údajov:
3h21m08s (hodiny, minúty, sekundy)
90o07′38″ (stupne, minúty, sekundy)
b) mayská – Mayovia spočiatku zapisovali čísla v nepozičnej päťkovej sústave od 1
do 19. Čísla 20 a vyššie neskôr zapisovali v pozičnej dvadsiatkovej sústave. Čísla
sa zapisujú smerom zdola nahor. Mayovia ako prví vo svojej sústave používajú
znak nuly (Tab. 5). (Znám, 1986)
Tab. 5 Mayská číselná sústava
0 3 5 8 10 19 20
c) arabská – je indického pôvodu, kde indické číslice so sumersko - babylonským
pozičným princípom a gréckym znakom pre chýbajúci rád vytvorili systém, ktorý
sa rozšíril prakticky po celej zemi. Do Európy bola rozšírená zásluhou Fibonacciho,
arabského matematika, a preto je tento systém ľudovo označovaný ako „arabské
číslice“. V arabskej sústave sa objavuje číslica nula, ktorú nazvali „as sifra“, čo
znamená dodnes používané „cifra“. Čísla a ich zápis, ako ich poznáme dnes
zaviedli práve Arabi. (Znám, 1986)
15
1.2 Číselné sústavy v súčasnosti
1.2.1 Desiatková číselná sústava
Desiatková číselná sústava označovaná tiež ako dekadická, je v súčasnosti
najpoužívanejšia číselná sústava vôbec, v ktorej počítame takmer všetko. Je to sústava,
ktorú používame dennodenne a je pre nás samozrejmosťou. V desiatkovej (dekadickej)
číselnej sústave používame 10 znakov: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 a ich pozíciou sa vyjadrujú
jednotky, desiatky, stovky atď. Otázka však znie: Prečo práve desať? Dôvodov môže byť
niekoľko. Faktom je, že táto sústava mohla vzniknúť jednoducho použitím počtu prstov na
rukách. Prsty boli predsa len prvým kontaktom pri určovaní počtu. Ďalším dôvodom je tiež
fakt, že číslo desať je primerané číslo, ktoré nie je malé ale ani veľké. S počtom cifier
v desiatkovej sústave sa tiež dobre ráta s použitím algoritmov základných počtových
operácií pri sčítaní, odčítaní, násobení a delení čísel zapísaných v desiatkovej sústave.
(Palková, 2008)
Netreba však zabudnúť, že sa jedná o pozičnú číselnú sústavu, v ktorej vieme
ľubovoľné číslo všeobecne vyjadriť N polynómom podľa vzťahu:
N=Zn Pn+Zn−1 Pn−1+…+Z1 P1+Z0 P0+Z−1 P−1+Z−2 P−2+…++Z−m P−m
( 1 )
N= ∑i=−m
n
Zi Pi
P = základ číselnej sústavy (P = 2, 3, 4, 5, 6 ...)
Zi = znaky použiteľné v danej číselnej sústave
N = číslo vyjadrené v číselnej sústave o základu P
n = počet rádových miest
Podmienky, ktoré platia: Zn≠ 0
Z−m≠ 0
Zi=0 pre i>n a i<−m
Zi=0 ÷ P−1 pre i∈ ⟨n−1;−m+1 ⟩
16
Pre desiatkovú sústavu teda transformáciou všeobecného vzorca ( 1 ) platí:
a=an×10n+an−1× 10n−1+…+a1×10+a0 , ( 2 )
kde a0 , a1 , …, an−1 , an∈ { {0 , 1 ,2 , …, 9 } (číslice desiatkovej sústavy)
Podmienka: an≠ 0
O číslici ai podľa vzorca ( 2 ) hovoríme, že je i - teho rádu. Číslo 10 i sa nazýva jednotka
rádu i. (Hruška, 1964)
Príklad: Číslo 95 342 môžeme rozpísať nasledovne:
95342=9× 104+5 ×103+3× 102+4 × 101+2× 100
Hovoríme, že číslo 95 342 má 9 jednotiek štvrtého rádu, 5 jednotiek tretieho
rádu, 3 jednotky druhého rádu, 4 jednotky prvého rádu a 2 jednotky nultého rádu.
Číslo 10 predstavuje základ a čísla 4, 3, 2, 1, 0 nazývame exponentami.
Pre ľahšiu čitateľnosť zapisujeme veľké čísla v trojciferných skupinách, ktoré počítame
sprava a nazývame ich triedy. Jednotlivé triedy od seba oddeľujeme malou medzerou.
Najvyššia trieda v čísle nemusí byť úplná a môže mať menej než tri číslice. (Hruška, 1964)
Príklad: Číslo 12 521 440 má tri triedy:
trieda miliónov trieda tisícov trieda jednotiek
1 2 5 2 1 4 4 0
Keďže základ číselnej sústavy môže nadobúdať všeobecne ľubovoľné prirodzené číslo
(P = 2, 3, 4, 5, 6 ...), číselných sústav poznáme nekonečno. V informatike však z
praktického hľadiska rozlišujeme len štyri číselné sústavy:
Ak P = 2, hovoríme o dvojkovej (binárnej) číselnej sústave
Ak P = 8, hovoríme o osmičkovej (oktalovej) číselnej sústave
Ak P = 10, hovoríme o desiatkovej (dekadickej) číselnej sústave
Ak P = 16, hovoríme o šestnástkovej (hexadecimálnej) číselnej sústave
17
1.2.2 Dvojková číselná sústava
Dvojková číselná sústava má základ P = 2 a používame v nej dve číslice 0 a 1. Táto
sústava začala nadobúdať význam od obdobia vzniku prvých elektronických počítačov.
Nula a jednotka predstavujú v praxi dve hodnoty elektrického prúdu, z čoho vyplýva, že
pre počítač majú tieto čísla výhodu ľahkej interpretácie. Nositeľom hodnoty v
elektronických počítačoch je elektrické napätie (Hennyeyová, 2009). Dvojková číselná
sústava je považovaná za najbežnejšiu číselnú sústavu, ktorá má z hľadiska technického aj
programového vybavenia stroja významné výhody. Z technického hľadiska sú to napr.
jednoduché algoritmy aritmetických a logických operácií a ich následná realizácia, ďalej
v porovnaní s inými sústavami je potrebný menší rozsah pamäte a pod. Z programového
hľadiska treba spomenúť možnosť delenia a násobenia mocninami dvoch jednoduchým
posunom čísla. Dvojková sústava sa hojne využíva, a to v moderných elektrónkových
počítačoch. Z programovacích jazykov možno spomenúť programovací jazyk assembler,
ktorý výrazne využíva dvojkové čísla. Assembler je materským jazykom procesora. Na
identifikáciu čísel v binárnej sústave, sa používa na konci čísla znak „b“ – prvé písmeno
v slove „binárna“, podobne to bude aj s dekadickou (desiatkovou) a hexadecimálnou
(šestnástkovou) sústavou. Binárna sústava sa tiež využíva pri logických inštrukciách a pri
práci s grafikou.
Nevýhodou dvojkovej sústavy je pomerne dlhý zápis aj nie príliš veľkého čísla.
Napríklad, číslo 13 má štvorciferný zápis, číslo 48 šesťciferný a číslo 522 dokonca
desaťciferný. Medzi nevýhody možno tiež zaradiť potrebu prevodu pri vstupe a výstupe
z desiatkovej sústavy do dvojkovej a naopak. Pri desiatkovej sústave je výhodou práve to,
že spomínané prevody odpadajú. Preto sa desiatkové čísla väčšinou kódujú do dvojkovej
sústavy pomocou dvojkovo desiatkového kódu (BCD kód), o ktorom budeme hovoriť
neskôr.
V dvojkovej sústave počítač kóduje informácie tak, že základnej najmenšej jednotke
informácie (jednému bitu), priradí nadobúdaciu hodnotu 0 alebo 1. Pamäť počítača si
môžeme predstaviť ako milióny miniatúrnych prepínačov, z ktorých každý je buď v ľavej
polohe (pre znak 0) alebo v pravej polohe (pre znak 1). Dlhými postupnosťami prepínačov
vyjadrujeme rôzne informácie. Nadobúdacia hodnota musí obsahovať prvky s dvoma
jednoznačne rozlíšiteľnými stavmi, čiže okrem 0 a 1 môže mať aj inú logickú hodnotu,
napr. zapnutý – vypnutý, pravda – nepravda, plus – mínus, a pod. Na popis týchto stavov je
18
teda najvhodnejšie použiť dvojkovú sústavu, pretože je založená na mocninách čísla dva.
(Palková, 2008)
Keď človek zadá počítaču informácie, jeho úlohou je tieto informácie prekódovať do
jemu zrozumiteľného jazyka. Tento spôsob kódovania nazývame binárny kód a
informácie zapísané v tomto kóde sa nazývajú digitálne informácie. Jednotku informácie
(jeden bit) zaviedol Claude E. Shannon (autor Teórie informácie). Vychádza z skratky
slovného spojenia „binary digit“. Všeobecne 1 bit definujeme ako množstvo informácií,
ktoré získame správou o realizácií jedného z dvoch možných, rovnako pravdepodobných
stavov. Na popísanie viac ako jedného stavu potrebujeme väčšie množstvo bitov
(Hennyeyová, 2009). Počet bitov potrebných na zapísanie daného počtu stavov je
v informatike daný vzťahom:
L=log2× N ( 3 )
L = potrebný počet bitov
N = maximálny počet získaných vzťahov (počet možností)
2 = základ logaritmu (dva možné stavy)
Vyššou jednotkou ako bit je jeden Bajt (z angl. slova Byte), ktorý tvorí skupinu ôsmich
bitov. Netreba však zabúdať, že 1B (Bajt) nie je jednotkou informácie, ale jednotkou
počítačovej pamäte. Do ôsmich bitov zoradených za sebou (jedného Bajtu) sa dá pomocou
jednotiek a núl zapísať číslo od 0 (osem núl) do 255 (osem jednotiek). Spolu je to 256 (28)
rôznych kombinácií binárnych stavov. Bajt je teda najmenšia adresovateľná časť pamäti
počítača používaná na zakódovanie jedného písmena, číslice alebo znaku. Vyššie jednotky
sú tvorené pridaním štandardných predpôn -kilo, -mega, -giga, -tera, -peta, -exa, -zetta, -
yotta. (Palková, 2008)
Základné násobky bitu sú uvedené v nasledovnej tabuľke (Tab. 6):
Tab. 6 Základné násobky bitu
1 Bajt [B] 8 bitov 8 bitov
1 Kilobajt [KB] 8*210 bitov alebo 210 Bajtov 1024 Bajtov [B]
1 Megabajt [MB] 220 bajtov alebo 210 Kilobajtov 1024 Kilobajtov [KB]
1 Gigabajt [GB] 220 kilobajtov alebo 210 Megabajtov 1024 Megabajtov [MB]
1 Terabajt [TB] 220 megabajtov alebo 210 Gigabajtov 1024 Gigabajtov [GB]
19
Digitalizácia
Dôvodom, prečo počítače pracujú práve s binárnou sústavou je digitalizácia. Treba
zdôrazniť, že digitalizáciou nazývame prevádzanie analógového signálu na číselný. Nie
opačne. Prevod sa uskutočňuje pomocou analógovo – číslicového prevodníka. Pri
prevádzaní analógového signálu na digitálny, sa každému údaju priradí zodpovedajúca
kombinácia jednotiek a núl. Digitálny signál možno matematicky vyjadriť pomocou
postupnosti celých čísel, no v prípade informatiky sa jedná o kódovanie údajov pomocou
postupnosti jednotiek a núl. Digitálny signál sa spracováva pomocou číslicového počítača.
(Bešenyi, cit. 2011-02-01)
Prevod z desiatkovej sústavy do dvojkovej a naopak
Prevod z desiatkovej číselnej sústavy do dvojkovej je možné realizovať rôznymi
spôsobmi. Jedným z nich je postupné celočíselné delenie desiatkového čísla a jeho
podielov dvojkou. Zvyšok po delení (0 alebo 1) je jednou číslicou z výsledného čísla,
pričom prvý zvyšok je číslicou najnižšieho rádu. Delenie pokračuje dovtedy, kým nie je
celočíselný podiel rovný nule alebo menší ako základ dvojkovej číselnej sústavy. Tento
posledný podiel je potom poslednou číslicou čísla v dvojkovej sústave. Pri zápise čísla sa
dolným indexom vyjadruje sústava, v ktorej je dané číslo zapísané. (Palková, 2008)
20
Príklad zápisu desiatkového čísla [2541]10 v binárnom tvare:
Desiatkové číslo celočíselne delíme dvomi a zapisujeme zvyšky po delení. Výsledné číslo
dostaneme zápisom zvyškov po delení zdola nahor (cifra najvyššieho rádu musí byť vždy
rôzna od nuly).
VÝPOČET ZVYŠOK
2 541 : 2 = 1 270 1
1 270 : 2 = 635 0
635 : 2 = 317 1
317 : 2 = 158 1
158 : 2 = 79 0
79 : 2 = 39 1 smer
39 : 2 = 19 1 zápisu
19 : 2 = 9 1
9 : 2 = 4 1
4 : 2 = 2 0
2 : 2 = 1 0
1 : 2 = 0 1
Výsledné binárne číslo má tvar:
[2541]10 = [100111101101]2
Prevod čísla zapísaného v binárnom tvare späť do čísla v desiatkovom tvare
prevádzame tak, že použijeme rozklad na polynómy. Jednotlivé rády sú mocniny čísla dva
(1, 2, 4, 8, 16, 32, 64, 128...). Prevod je veľmi jednoduchý, váhu každej číslice vyjadríme
dekadicky a spočítame.
1 0 0 1 1 1 1 0 1 1 0 1
211 210 29 28 27 26 25 24 23 22 21 20
21
[100111101101]2 =
1 ×211+0 × 210+0 × 29+1× 28+1× 27+1 ×26++1 ×25+0× 24+1 ×23+1× 22+0 ×21+1× 20=2048+256++128+64+32+8+4+1=[ 2541 ]10
Pre väčšiu názornosť prikladám tabuľku váh (rádov) prirodzených čísel v dvojkovej
sústave (Klimeš, 2004):
Tab. 7 Váhy v dvojkovej sústave
Polynóm so základom dva Desiatková sústava Dvojková sústava
20 1 1
21 2 10
22 4 100
23 8 1000
24 16 10000
25 32 100000
26 64 1000000
27 128 10000000
28 256 100000000
29 512 1000000000
210 1024 10000000000
211 2048 100000000000
212 4096 1000000000000
213 8192 10000000000000
214 16384 100000000000000
215 32768 1000000000000000
216 65536 10000000000000000
1.2.3 Osmičková číselná sústava
Osmičková číselná sústava má základ P = 8 a používame v nej povolené znaky:
0, 1, 2, 3, 4, 5, 6, 7. Jej využitie je významné najmä pre skrátený a zrozumiteľnejší zápis
22
binárnych čísel. Binárne čísla sú zvyčajne dlhé a neprehľadné postupnosti núl a jednotiek.
Pre ich jednoduchší zápis sa teda používa osmičková a šestnástková číselná sústava.
Základom je vzťah 23 = 81, čo znamená, že binárne rády sa zobrazujú jedným osmičkovým
rádom. (Palková, 2008)
Tab. 8 Hodnoty mocnín so základom 8
Polynóm so
základom osem80 81 82 83 84 85 86 87 88
Desiatková sústava 1 8 64 512 4096 32 768 262 144 2 097 152 16 777 216
Prevod z desiatkovej číselnej sústavy do osmičkovej je možné realizovať podobným
spôsobom ako bol prevod do dvojkovej sústavy. Realizácia vyplýva z postupného
celočíselného delenia desiatkového čísla a jeho podielov osmičkou. Zvyšok po prvom
delení (0 až 7) je číslicou najnižšieho rádu výsledného čísla. Celočíselný podiel sa
opätovne delí, až kým nie je rovný nule.
Príklad zápisu desiatkového čísla [2541]10 v osmičkovom tvare:
Desiatkové číslo celočíselne delíme osmičkou a zapisujeme zvyšky po delení zdola nahor
(cifra najvyššieho rádu musí byť vždy rôzna od nuly).
VÝPOČET ZVYŠOK
2 541 : 8 = 317 5
317 : 8 = 39 5 smer
39 : 8 = 4 7 zápisu
4 : 8 = 0 4
Výsledné osmičkové číslo má tvar:
[2541]10 = [4755]8
Prevod čísla zapísaného v osmičkovom tvare späť do čísla v desiatkovom tvare
prevádzame rovnakým spôsobom ako pri prevode z binárneho tvaru, a to pomocou
23
rozkladu na polynómy. Výskyt postupne sa znižujúcich mocnín so základom osem
zapisujeme pomocou číslic 0 až 7.
[4755]8 = 4 ×83+7× 82+5 ×81+5 ×80=4 ×512+7 ×64+5 ×8++5 × 1=[ 2541 ]10
Výsledné desiatkové číslo má tvar:
[4755]8 = [2541]10
1.1.1 Šestnástková číselná sústava
Šestnástková číselná sústava má základ P = 16. Vychádzame zo vzťahu 2 4 = 161, čiže
štyri binárne rády sa zobrazujú jedným šestnástkovým rádom. Kedže základom sústavy je
číslo 16, pre zápis šestnástkového čísla je potrebných až 16 rôznych symbolov. Číslice 10
až 15 nemožno zapísať jedným znakom, preto ich podľa dohody zapisujeme pomocou
24
veľkých písmen abecedy A až F. Povolené znaky v jednom ráde teda sú: 0, 1, 2, 3, 4, 5, 6,
7, 8, 9, A, B, C, D, E, F, podľa tabuľky:
Tab. 9 Symboly a hodnoty znakov v šestnástkovej sústave
Desiatková sústava 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Šestnástková sústava 0 1 2 3 4 5 6 7 8 9 A B C D E F
Šestnástková sústava sa podobne ako osmičková využíva pri práci s počítačom na
skrátený zápis binárnych čísel. Používa sa pri zápise znaku alebo kódu farby pixela
v počítači. Je to pochopiteľné, keďže napríklad na zápis bielej farby by sme v dvojkovej
sústave museli použiť až 24 znakov, pri šestnástkovej sústave si vystačíme len so 6
znakmi. Môžeme povedať, že nám šestnástková sústava umožňuje 4 – krát úspornejší zápis
binárnych čísel. Do jedného bajtu vieme zapísať číslo 25510, ktoré má v šestnástkovej
sústave vyjadrenie FF16. (Hennyeyová, 2009)
Zaujímavosťou je tiež fakt, že každý z nás, kto používa OS Windows sa tiež už stretol
so šestnástkovým formátom čísla. Pravdepodobne každému z nás sa už prihodila BSOD,
čiže modrá obrazovka smrti. Tieto obrazovky aj v súčasnosti občas vidieť a keď sa bližšie
pozriete, akýkoľvek BSOD obsahuje aj chybové hlásenie fyzickej pamäte, ktoré má len
hexadecimálne čísla. Taktiež všetky ostatné chybové hlásenia sú vyjadrené v tejto sústave.
Pri číselnom prevode čísla v šestnástkovom tvare budeme vychádzať z tabuľky:
Tab. 10 Hodnoty mocnín so základom 8
Polynóm so základom
šestnásť160 161 162 163 164 165
Desiatková sústava 1 16 256 4 096 65 536 1 048 576
Príklad zápisu desiatkového čísla [54127]10 v šestnástkovom (hexadecimálnom) tvare:
Desiatkové číslo celočíselne delíme šestnástkou a zapisujeme zvyšky po delení zdola nahor
(cifra najvyššieho rádu musí byť vždy rôzna od nuly).
VÝPOČET ZVYŠOK
25
54 127 : 16 = 3 382 F
3 382 : 16 = 211 6 smer
211 : 16 = 13 3 zápisu
13 : 16 = 0 D
Výsledné šestnástkové číslo má tvar:
[54127]10 = [D36F]1
Naopak, prevod čísla v šestnástkovom tvare späť do čísla v desiatkovom tvare:
[D36F]16 =
13 ×163+3 × 162+6 ×161+15×160=13× 4096++3×256+6 × 16+15×1= [54127 ]10
Vyššie čísla ako 255 sa v počítači zapisujú do dvoch, troch alebo štyroch bajtov. Čísla,
ktoré majú viac ako jeden bajt sa v pamäti počítača ukladajú vždy v poradí od najnižšieho
bajtu po najvyšší (Tab. 11).
Príklad: Máme číslo [7878]10 zapísané v desiatkovej sústave. Prevodom na
hexadecimálny tvar dostávame vyjadrenie [1EC6]16. Toto číslo sa ukladá v pamäti
počítača do dvoch bajtov. Nižší bajt obsahuje číslo C6 a vyšší bajt číslo 1E.
Desiatkové číslo 7878 sa tiež rozdelí na nižšie a vyššie. Do vyššieho bajtu sa uloží
číslo 198 a do nižšieho číslo 30. Zmysel a spojenie s číslom 7878 sa objavuje až
po usporiadaní oboch bajtov do jedného:
30 ×256+198=7680+198=7878
Tab. 11 Hodnoty čísel ktoré sa dajú zapísať do n bajtov
Počet bajtov [n] Desiatková sústava Šestnástková sústava
1 1 1
1 255 FF
2 256 100
26
2 65 535 FFFF
3 65 536 10000
3 16 777 215 FFFFFF
4 16 777 216 1000000
4 4 294 967 295 FFFFFFFF
5 4 294 967 296 100000000
5 1 099 511 627 775 FFFFFFFFFF
Najnižšie číslo, ktoré sa dá zapísať do n bajtov
Najvyššie číslo, ktoré sa dá zapísať do n bajtov
1.1.2 Prevody medzi nedesiatkovými číselnými sústavami
Prevod z dvojkovej do osmičkovej a šestnástkovej číselnej sústavy
Už vieme, že dvojková číselná sústava má základ P = 2 a používame v nej číslice 0
a 1. Osmičková číselná sústava má základ P = 8 s číslicami 0 až 7. Šestnástková číselná
27
sústava je vyjadrená so základom P = 16 a číslicami 0 až 9, ktoré dopĺňajú písmená A až F.
Pretože prevod z dvojkovej sústavy do osmičkovej je jednoduchý, nevyžadujú sa žiadne
náročné výpočty. Pri číselných prevodoch budeme vychádzať z jednoduchej tabuľky:
Tab. 12 Hodnoty mocnín so základom 2
20 = 1
21 = 2
22 = 4
23 = 8
24 = 16
Pre prevod dvojkového čísla do osmičkovej sústavy je najjednoduchším spôsobom
rozdelenie dvojkového čísla do skupín po tri číslice sprava doľava. Každú trojicu číslic
potom jednoducho prevedieme na číslo v osmičkovej číselnej sústave.
Príklad:
Ľubovoľné číslo v desiatkovej sústave [4785]10 sme previedli do binárneho tvaru
[1001010110001]2. Našou úlohou je binárne číslo previesť do osmičkovej sústavy.
Binárne číslo rozdelíme sprava na trojice (prvé číslo zostane samostane).
1 001 010 110 001
Každú z trojíc prevedieme do osmičovej sústavy pomocou polynómov 20, 21, 22,
nasledovne:
1=1×20=1=1
001=0× 22+0×21+1× 20=0+0+1=1
010=0 ×22+1× 21+0×20=0+2+0=2 smer
110=1× 22+1× 21+0× 20=4+2+0=6 zápisu
001=0× 22+0×21+1× 20=0+0+1=1
28
Výsledné osmičkové číslo má tvar:
[1001010110001]2 = [11261]8
Prevod späť do dvojkovej sústavy uskutočníme tak, že každú číslicu osmičkového čísla
prevedieme do dvojkovej sústavy (trojmiestne číslo) a zľava dopĺňame nuly.
Máme osmičkové číslo [11261]8.
1 1 2 6 1
001 001 010 110 001
zápis
Výsledné dvojkové číslo má tvar:
[11261]8 = [1001010110001]2
Prevod do šestnástkovej číselnej sústavy:
Prevod dvojkového čísla do šestnástkovej sústavy je podobný ako pri predchádzajúcom
prevode s tým rozdielom, že dvojkové číslo delíme do skupiny po štyri číslice namiesto
troch. Dodržujeme tiež smer sprava doľava. Vytvorené štvorice číslic potom prevedieme
na číslo v šestnástkovom tvare. Pre čísla 10 – 15 použijeme písmená A – F.
Príklad:
Ľubovoľné číslo v desiatkovej sústave [4785]10 sme previedli do binárneho tvaru
[1001010110001]2. Našou úlohou je binárne číslo previesť do šestnástkovej sústavy.
Binárne číslo rozdelíme sprava na štvorice (prvé číslo zostane samostatne).
1 0010 1011 0001
Každú zo štvoríc čísel prevedieme do šestnástkovej sústavy pomocou polynómov 20, 21, 22,
23 nasledovne:
29
1=−−−1× 20=1=1
0010=0 ×23+0 ×22+1 ×21+0 ×20=0+0+1+0=2 smer
1011=1× 23+0× 22+1× 21+1×20=8+0+2+1=B zápisu
0001=0× 23+0×22+0 ×21+1 ×20=0+0+1+0=1
Výsledné šestnástkové číslo má tvar:
[1001010110001]2 = [12B1]16
Spätný prevod do dvojkovej sústavy uskutočníme tak, že každú číslicu šestnástkového
čísla prevedieme do dvojkovej sústavy (štvormiestne číslo) a zľava dopĺňame nuly.
Máme šestnástkové číslo [12B1]16.
1 2 B 1
0001 0010 1011 0001
zápis
Výsledné dvojkové číslo má tvar:
[12B1]16 = [1001010110001]2
1.1.3 Ďalšie typy číselných sústav
Tab. 13 Ďalšie typy číselných sústav
Číselná sústava Použité znaky
Dvojková (binárna) 0, 1
Trojková 0, 1, 2
30
Štvorková 0, 1, 2, 3
Päťková 0, 1, 2, 3, 4
Šestková 0, 1, 2, 3, 4, 5
Sedmičková 0, 1, 2, 3, 4, 5, 6
Osmičková (oktálová) 0, 1, 2, 3, 4, 5, 6, 7
Deviatková 0, 1, 2, 3, 4, 5, 6, 7, 8
Desiatková (dekadická) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Šestnástková (hexadecimálna) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
1.3 Kódovanie čísel v počítači
Na kódovanie čísel v počítači požívame dva rôzne spôsoby kódovania. Prvou je
binárna sústava, s ktorou sme sa už oboznámili v predošlých častiach. Druhý spôsob ako
zakódovať číslo v počítači je binárne kódovaná desiatková sústava – BCD.
31
1.1.4 BCD kód (8421)
BCD kód (Binary Coded Decimal) je kód, v ktorom sú každej desiatkovej číslici
priradené 4 bity – tetráda. Tento štvorbitový kód je často využívaný pre priame binárne
kódovanie desiatkových čísel do dvojkovej sústavy.
Prevodom desiatkového čísla [2541]10 sme získali dvojkové číslo [100111101101]2.
Keďže je tento zápis neprehľadný pre rýchle vyjadrenie jeho veľkosti, vyjadríme toto číslo
v BCD kóde. To znamená, že každú jednu číslicu osobitne kódujeme štyrmi bitmi podľa
tabuľky (Tab. 14). Každý bit má svoju pevnú hodnotu – váhu, preto BCD kód nazývame
tiež „váhovým“ kódom. (Štancl, 2006)
Tab. 14 Vyjadrenie desiatkových čísel v BCD kóde
Desiatkové číslo BCD kód
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
Desiatkové číslo [2541]10 je v BCD kóde vyjadrené ako [0010 0101 0100 0000]BCD.
V BCD kóde sa zapisujú štyri pozície čísla, ktoré sú rádu 1, 2, 4 a 8. Z toho vzniklo aj
označenie – kód 8421. Pomocou tohto kódovania uložíme dve číslice do jedného bajtu a
štyrmi bitmi dokážeme zakódovať 24 = 16 rôznych znakov. Tieto číslice vstupujú do stroja
8 bitmi, kde 4 bity ľavej časti tvoria tzv. zónu, ktorá svojou hodnotou (1111) udáva, že
daný znak je číslica. Tento rozvinutý tvar sa používa pre styk s periférnymi zariadeniami
stroja. Číslicová informácia sa pred uložením do pamäte stroja preskupí do zhusteného
tvaru, ktorý sa potom uplatňuje pri vnútorných operáciách s desiatkovými číslami.
32
Výhodou kódu BCD je ľahké čítanie a sčitovanie údajov a jeho využitie môžeme
pozorovať v digitálnych prístrojoch na zobrazovanie číslic – sedem segmentový displej,
požívaný v kalkulátoroch a digitálnych hodinkách. V počítači sa pomocou BCD kódu
uchovávajú informácie týkajúce sa času a dátumu, prípadne niektorej inej systémovej
informácie. (Kódy a kódovanie, 2009)
Rozšíreným kódovaním je kódovanie EBCDI, pomocou ktorého možno okrem číslic
vyjadriť aj písmená a špeciálne znaky.
1.1.5 ASCII (American Standart Code for Information Interchange)
- Americký štandardný kód pre výmenu informácií
Počítaču zadávame vstupy pomocou klávesnice. Každým stlačením klávesy na
klávesnici zadáme určitý znak (písmeno, číslo, interpunkcia, špeciálne znaky atď.). Počítač
musí zobraziť tieto znaky na výstupe – na monitore. To, ako sa majú zobrazovať znaky má
počítač uložené vo svojej vlastnej pamäti vo forme kódovej schránky. Ako už bolo
spomenuté, počítač využíva 8 bitovú logiku, čiže 1 bajt sa skladá z 8 bitov a môže mať 256
kombinácií binárnych stavov.
Keďže znaky textu nevieme priamo previesť do dvojkovej sústavy vznikla tabuľka
znakov ASCII, kde sa dá každý znak vyjadriť pomocou prideleného kódu, ktorý ma
veľkosť len jeden bajt. Z toho vyplýva, že tabuľka ASCII obsahuje celkovo 256 znakov.
Každý znak (symbol) má svoju dekadickú, hexadecimálnu alebo oktálovú podobu.
Napr.: A = [65]10 „+“ = [2B]16 9 = [071]8
Tabuľka ASCII vznikla z nutnosti zjednotiť spôsob ako jednoznačne priradiť určitému
znaku práve jednu binárnu kombináciu, ktorá bude tento znak v počítači reprezentovať.
Tabuľku ASCII zaviedol americký úrad pre normalizáciu
1.1.6 UNICODE a UTF – 8
Ako už bolo spomenuté, tabuľka ASCII obsahuje 256 znakov, ktoré musia byť pre
všetky počítače v rámci krajiny rovnaké, z dôvodu kompatibility pri prenose dát. Z 256
znakov je prvá polovica pre všetky krajiny rovnaká no druhá polovica sa stanovila podľa
33
potrieb konkrétnej krajiny. To spôsobilo veľký neporiadok v kódovaní znakov, a preto bol
vymyslený spôsob kódovania UNICODE, ktorý namiesto 8 bitov používa na zakódovanie
jedného znaku 16 bitov. UNICODE tak umožňuje zakódovať 65 536 možných znakov
a tým zaisťuje plnú medzinárodnú kompatibilitu v kódovaní znakov. Tento spôsob sa
využíva aj v kancelárskom balíku MS Office. Keďže 16 bitové kódovanie zaberá v pamäti
viac miesta ako 8 bitové ASCII kódovanie, bolo zavedené kódovanie UTF – 8. Podstatou
tohto kódovania je fakt, že prvých 128 znakov tabuľky ASCII je zakódovaných 8 bitovo
a ostatné znaky sú kódované 16 až 48 bitmi. Formát UTF – 8 je štandardizovaný ako
ISO/IEC 10646.
34
2 Cieľ práce
Hlavným cieľom práce je vytvorenie aplikácie, ktorú bude možné použiť ako
elektronickú študijnú pomôcku. Aplikácia sa má realizovať vo vhodne zvolenom
vývojovom prostredí tak, aby bolo možné študentom ukázať hlavné princípy vo
vzájomných prevodoch medzi jednotlivými číselnými sústavami. Aplikácia musí vhodným
spôsobom uviesť študentov do uvedenej problematiky číselných sústav s dôrazom na
najpoužívanejšie číselné sústavy – dvojková, osmičková, desiatková a šestnástková. Pri
prevode čísla z jednej číselnej sústavy do druhej treba okrem samotného výsledku brať do
úvahy aj zobrazenie algoritmu prevodu pre lepšie pochopenie systému prevádzania čísel.
Výsledkom by mala byť aplikácia, v ktorej bude možné interakciou s klávesnicou určiť
nasledovné údaje:
číselnú sústavu z ktorej sa bude číslo prevádzať,
číselnú sústavu do ktorej sa bude číslo prevádzať,
samotné prevádzané číslo,
Pri zadávaní číselnej sústavy treba vylúčiť možnosť duplicity v zadaných číselných
sústavách a tiež chybu vo formáte zadávaného čísla – napr. pri zvolenej dvojkovej sústave
je možné zadať len číslo s povolenými znakmi 0 a 1. Výstupom by potom malo byť
správne číslo prevedené do zvolenej číselnej sústavy a tiež algoritmus s prislúchajúcimi
výpočtovými operáciami.
Cieľom práce je tiež jednoducho a výstižne objasniť jednotlivé časti zdrojového kódu.
Časti treba vyberať sektorovo tak, aby bola každá podstatná časť programu účelne
vysvetlená.
35
3 Metodika práce
K úspešnému naplneniu zadaných cieľov je nepochybne prvým, a tiež kľúčovým
bodom, štúdium odbornej literatúry zameranej na problematiku čísel a číselných sústav.
V bežnom živote sa stretávame len s desiatkovou, prípadne dvojkou sústavou (áno – nie,
plus – mínus). Ostatné číselné sústavy sa obvykle používajú len vo výpočtovej technike.
Preto je veľmi dôležité aby človek, ktorý chce navrhnúť fungujúcu aplikáciu, správne
pochopil zápis v jednotlivých číselných sústavách. Dôležitý je tiež systém, pomocou
ktorého sa prevádzajú čísla v jednotlivých sústavách medzi sebou. Zo zadania je nám
známe, že dôraz sa kladie najmä na dvojkovú, osmičkovú, desiatkovú a šestnástkovú
číselnú sústavu. Práve pochopenie princípu počítania s číslami patrí k základnému
predpokladu pri realizácií programu.
Po ujasnení si základných princípov prevádzania je dôležité aj štúdium vhodných
programových prostriedkov, pomocou ktorých sa bude daná aplikácia realizovať. V tejto
časti je dôležitý výber vhodného programovacieho jazyka (v našom prípade Java)
a vývojového prostredia, v ktorom sa bude program písať (v našom prípade NetBeans). Je
dôležité spomenúť, že programovací jazyk Java je zdarma a voľne dostupný na
internetovej adrese http://www.oracle.com/technetwork/java/index.html. Na tejto adrese sa
tiež nachádza všetko, čo potrebujeme k programovaniu v Jave. Skratka JDK znamená Java
Development Kit a označujú ňou vývojové nástroje pre programovanie v Jave. Správne
nainštalovaná Java je hlavným predpokladom pre úspešné spustenie aplikácie.
Ako už bolo spomenuté aplikácia na prevod číselných sústav je realizovaná vo
vývojovom prostredí firmy NetBeans. Pomocou programu NetBeans sa vytvárajú,
prekladajú a ladia aplikácie v jazyku Java. Jedná sa o vývojársky softvér, ktorý je
pravidelne aktualizovaný a pre nekomerčné účely dostupný zdarma na adrese
http://netbeans.org/downloads. Jeho aktuálna verzia pred začatím realizácie aplikácie bola
NetBeans IDE 6.9.1. (Virius, 2005)
Nasledujúcim bodom po výbere programových prostriedkov je návrh samotného
algoritmu riešenia, jeho optimalizácia a overenie. Programovací jazyk Java podporuje
kódovanie Unicode. To znamená, že program napísaný v Jave dokáže pracovať s textami
napísanými v rôznych jazykoch rôznymi písmami bez toho, že by na to programátor musel
36
osobitne myslieť. K zostaveniu funkčného a kvalitného zdrojového kódu je potrebné
postupovať podľa nasledovných bodov:
inicializácia premenných,
dizajnový návrh programu,
vytvorenie tried,
vytvorenie metód na zobrazenie postupu prevodu pre každú sústavu zvlášť,
kontrola a vylúčenie chýb pomocou funkcie debugger,
viesť jednoduchú a zrozumiteľnú programovú dokumentáciu,
V práci budeme pracovať primárne s číselnou premennou typu int, keďže pracujeme
s číslami. O vzájomnú interakciu s používateľom programu sa bude starať GUI, čiže
grafické používateľské rozhranie. V jave existuje niekoľko knižníc na vytváranie okien
(GUI). Medzi najčastejšie používané patria AWT a Swing. My budeme používať Swing.
Swing predstavuje množinu tried na tvorbu grafického rozhrania, kde vzhľad komponentov
je nezávislý od platformy. Aplikácia má rovnaký vzhľad na všetkých platformách. Swing
nepoužíva natívny kód na zobrazenie komponentov. O vykreslenie komponentov sa stará
sám.
V aplikácií budeme musieť použiť dve triedy. Prvá bude riešiť samotný prevod a druhá
nám bude slúžiť na vykreslovanie. Pre každý jeden prevod bude potrebné realizovať zvlášť
metódu. Ich spoločný počet bude 12. Metódy sa použijú vždy tam, kde bude potrebné danú
metódu vykonať. Pri prevodoch, kde sa vyskytuje šestnástková sústava netreba zabúdať na
nutnosť prevodu čísel na písmená a naopak. Postup prevodu musí byť jednoduchý a
výstižný, tak aby bolo možné vždy jednoznačne určiť, čo sa s čím spočítava, respektíve
násobí a delí.
Pri ladení a testovaní programu treba dôsledne odskúšať všetky kombinácie prevodu,
tak aby sa vymedzili všetky nepresnosti a chyby, ktoré môžu nastať. Nakoniec je potrebné
spísať dokumentáciu k aplikácií tak, aby sa dalo zistiť čo daná časť aplikácie práve rieši,
prípadne aby bolo možné rozšíriť funkcionalitu o ďalšie možnosti.
37
4 Výsledky práce
4.1 Všeobecne o Jave a prečo práve Java
Java je pomerne nový, objektovo orientovaný programovací jazyk. Pre verejnosť bol
predstavený v roku 1995 a je používaný miliónmi programátormi po celom svete. Java
bola vyvinutá vývojovým tímom firmy Sun Microsystems pod vedením Jamesa Goslinga.
Pôvodné využitie tohto programovacieho jazyka bolo v riadení rôznej spotrebnej
elektroniky ako napríklad: mikrovlnné rúry, kávovar, atď. Tento jazyk sa mal volať Oak
(z angl. dub). Keďže sa neskôr zistilo, že programovací jazyk Oak už existuje, jeho tvorci
sa rozhodli pre názov Java, čo znamená akési americké espreso, a preto sa tiež logom stala
horúca šálka kávy.
Základom úspechu Javy bola široká možnosť zabezpečenia, z čoho vyplýva dobrá
využiteľnosť v oblasti internetu. V súčasnosti sa Java využíva v mnohých oblastiach.
Okrem jednoduchých programov a v Jave píšu aj aplety, tzn. krátke programy, ktoré je
možné vkladať do webových stránok. Obdobou apletov sú servlety, čo sú vlastne
programy, bežiace na webových serveroch a ich úlohou je vytváranie dynamických
stránok. Verzie Javy sa postupne vyvíjali od ranných verzií JDK 1.0.2, 1.1.8, 1.2.2 cez
1.3.2 a 1.4.2 až po aktuálne verzie označované jednoduchým číslom 5, respektíve 6.
Dôvodom tohto označenia je výrazný posun v možnostiach Javy. Výhodou je možnosť
pracovať v rôznych vývojových prostrediach, ktoré podporujú vizuálne nástroje. To
znamená, že týmito nástrojmi môžeme pomocou myši veľmi jednoducho zostaviť základ
svojho programu – okenné aplikácie. Z vopred pripravených komponentov vyberáme tie,
38
ktoré sú pre náš program potrebné a zdrojový kód sa nám automaticky vygeneruje. Je to
nedoceniteľná funkcia pre pohodlný vývoj programu. (Hynar, 2004)
Zdrojový text
Zápis programu vo vyššom programovacom jazyku sa označuje ako zdrojový program
alebo zdrojový kód. Tento kód sa pomocou prekladača (kompilátora) prekladá do
strojového kódu. Zostavovací program – linker, spolupracuje s prekladačom a jeho úlohou
je spojiť niekoľko nezávisle preložených častí programu do jedného celku. Okrem toho
pripojí knižnice, čo sú časti programu, ktoré už boli v minulosti naprogramované niekým
iným. Výsledkom prekladu programu je súbor, obsahujúci strojový kód, ktorý je možné na
počítači priamo spustiť. Preklad zdrojového kódu je využívaný programovacími jazykmi
ako napr. C, C++ alebo Pascal a hovoríme o prekladaných (kompilovaných)
programovacích jazykoch. Iný spôsob využívajú interpretery – programy, ktoré čítajú
zdrojový kód a vykonávajú príkazy, ktoré sú v ňom obsiahnuté, čiže ich interpretujú. Ich
nevýhodou je najmä pomalosť a navyše spolu s vytvoreným programom sa musí na
počítači nachádzať aj interpretačný program. Medzi interpretery patria jazyky Basic, Perl,
Phyton a ďalšie.
Javu radíme niekde medzi prekladané jazyky a interpretery. Samotný preklad
zdrojového kódu sa síce uskutočňuje, nie však do strojového kódu počítača ale do
všeobecného jazyka, ktorý sa nazýva bajtový kód. Nasledovná interpretácia bajtového kódu
sa uskutočňuje pomocou programu JVM (Java Virtual Machine) – javovský virtuálny stroj.
Výhodou je vyššia rýchlosť behu programu ako u interpreterov a možnosť jednoduchého
prenosu preloženého programu na cieľový počítač, na ktorom je nainštalovaný JVM. To je
jedným z dôvodov prečo je práca realizovaná práve v tomto prostredí. (Hynar, 2004)
39
4.2 Aplikácia – prevodník číselných sústav
V tejto časti sa budeme venovať samotnej aplikácií, slúžiacej na vyjadrenie čísla
v ľubovoľnej číselnej sústave. Na konkrétnych príkladoch si ukážeme funkcionalitu
jednotlivých častí kódu. Časti kódu si tiež popíšeme a vysvetlíme ich význam. Pri
zapisovaní kódu je dôležité rozlišovať malé a veľké písmená pretože Java patrí medzi
„case sensitive“ programy, čiže programy citlivé na veľkosť písmen.
4.2.1 Popis zdrojového kódu
Najskôr deklarujeme názov prvej triedy, ktorá má názov Cislo. Príkaz public určuje, že túto triedu môžeme používať aj z iných častí programu a teda je verejne
prístupná. Ako som už spomínal v našej aplikácií budeme používať uvedenú GUI typu
swing.
Na začiatku je tiež dôležitá deklarácia premenných. My budeme používať číselné
premenné typu int.
40
public class Cislo extend
s javax.swing.JFrame
{
int cislo; int poly;int pomocna2;int pomocna8;int pomocna16;String a;int a_na_cislo;
V ďalšej časti vytvárame inštancie triedy StringBuffer, ktorá je akoby reťazec na
ktorý sa dá pripisovať bez toho aby sa stará hodnota nezmazala. Trieda StringBuffer je na
rozdiel od triedy StringBuilder synchronizovaná, takže je bezpečnejšia pri práci s
viacerými vláknami. Príkazom Label pole vytvoríme Label, ktorý môžeme definovať
ako popisovač alebo výstupné textové pole. Sem sa bude vypisovať výpis aplikácie.
Inicializácia premenných sa vykoná v konštruktore jeden krát. Po vytvorení comboboxov
v záložke Design sa pridajú položky pre jComboBox1 a jComboBox2.
V nasledujúcich riadkoch si popíšeme jednotlivé použité metódy na prevod čísel.
41
public Cislo() { initComponents(); jComboBox1.addItem("dvojkova"); jComboBox1.addItem("desiatkova"); jComboBox1.addItem("osmickova"); jComboBox1.addItem("sestnastkova");
StringBuffer polynom= new StringBuffer(5000); StringBuffer zjednoduseny_polynom= new StringBuffer(5000);StringBuffer medzivypocet= new StringBuffer(5000);Label pole;
Z 2 do 8
Ako prvú udávame metódu, ktorá je zavolaná pri preklade dvojkového čísla do
osmičkového. V tejto metóde načítavame vstup do premennej a. Sem sa načíta číslo ktoré
zadávame do kolónky VSTUP. Následne v metóde zisťujeme dĺžku vstupu príkazom int dlzka=a.length(). Premenná pripocitaj je pomocná premenná, ktorá zisťuje
ako sa ma oddeliť vstup. To znamená, že tak usekávame 3 čísla a z toho nám vzniká jeden
osmičkový bit. Je to potrebné kvôli tomu, že pri tomto prevode sa číslo „usekáva“ smerom
odzadu dopredu. Po zistení dĺžky vstupu určujeme podmienky. Ak nám dĺžka vstupu udáva
po delení trojkou zvyšok 0, tak premennej pripocitaj priradí nulu. Podobne aj pri
ďalších podmienkach.
Ďalej nasleduje cyklus, v ktorom začíname od pozície pripocitaj (koľko bol
zvyšok dĺžky vstupu až po koniec ) a pokračujeme až po koniec s takým krokom, že pri
každom cykle sa hodnote i pripočíta hodnota 3. Zapísanie rozdeleného vstupu prebieha
42
public void postup_z_2_do_8(){ a=jTextField1.getText(); dlzka=a.length(); pripocitaj=0 if (dlzka%3==0){ pripocitaj=0; } if (dlzka%3==1){ pripocitaj=1; } if (dlzka%3==2){ pripocitaj=2;
v ďalšom riadku. Ide o zápis do tvaru rozdeleného tak, aby reprezentoval osembitové číslo
aj s lomkami, ktoré slúžia na ich oddelenie. Príkaz polynom.insert(0,
a.substring(0, pripocitaj)+" | ") slúži na pridanie tých čísel, ktoré
zvýšili na začiatok reťazca. Napríklad pri vstupe 10111011 sa najskôr zapíše 111 | 011 a po
vykonaní tohto príkazu sa pridá na začiatok 10 | 111 | 011.
Do vytvorených jLabel8, jLabel9 a jLabel10 sa potom uskutoční výpis výsledkov
a medzivýsledkov na plochu.
Z 2 do 16
Metóda na prevod z dvojkovej do šestnástkovej sústavy je prakticky rovnaká s tým
rozdielom, že berieme 4 čísla a nie tri ako v osmičkovej.
Z 8 do 16
43
for (int i=pripocitaj;i<=dlzka-pripocitaj;i=i+3){ polynom.append(a.substring(i, i+3)+" | "); }for(int i=0;i<jLabel5.getText().length();i++){ zjednoduseny_polynom.append(jLabel5.getText().subs tring(i, i+1)+" | ");}if(pripocitaj!=0){polynom.insert(0, a.substring(0, pripocitaj)+" | "); } jLabel8.setText(polynom+" ="); jLabel9.setText(zjednoduseny_polynom+" =");jLabel10.setText(jLabel5.getText());
V úvode metódy na prevod z osmičkovej sústavy do šestnástkovej je zavolaná metóda
postup_z_8_do_10() na prevod z osmičkovej do desiatkovej sustavy. Ak tento
prevod prebehne môžeme toto číslo v desiatkovej sústave ďalej prevádzať do
šestnástkovej. Zadeklarujeme pomocnú premennú pom = 0. Potom načítame reťazec zo
vstupu vo formáte čísla. Ďalej nasleduje cyklus, ktorý prebieha dovtedy, pokým vstup nie
je nula. Inými slovami povedané delenie číslom 16 prebieha toľkokrát, pokiaľ
nedosiahneme nulu. Keďže sa v šestnástkovej sústave nachádzajú aj písmená je potrebné
túto skutočnosť ošetriť. Zadávajú sa špeciálne podmienky, ktoré slúžia na rozlíšenie toho,
čo sa má stať ak je zvyšok 10, 11, 12, 13, 14 alebo 15. Výsledok sa má nahradiť
písmenami A,B,C,D,E,F.
Ďalšou úlohou je pridať pole do kontajnera, pomocou metódy this.add(pole) na
44
public void postup_z_8_do_16(){ postup_z_8_do_10(); pom=0;
a_na_cislo=Integer.parseInt(jLabel11.getText()); while (a_na_cislo!=0) { if(a_na_cislo%16==10){ pole=new Label(a_na_cislo+ " : 16 = "+a_na_cislo/16+" zv. A"); ... }else if(a_na_cislo%16==15){ pole=new Label(a_na_cislo+ " : 16 = "+a_na_cislo/16+" zv. F"); }else{ pole=new Label(a_na_cislo+ " : 16 = "+a_na_cislo/16+" zv."+a_na_cislo%16); }
zobrazenie medzivýpočtov v okne. Keby textové pole nepridáme do kontajnera, tak sa nám
nič nezobrazí. Kontajner je vlastne komponent, do ktorého je možné vkladať iné
komponenty. Funkcia setBounds slúži na nastavenie pozície a veľkosti daného objektu.
V našom prípade je to objekt, v ktorom vypisujeme medzivýpočty. Ďalej je uvedené
delenie čísla zo vstupu číslom 16.
Z 8 do 2, a zo 16 do 2
Pri prevode z 8 do 2 sústavy opäť identicky zavoláme metódu, ktorá prevedie číslo z 8
do 10 sústavy a z nej prevádzame do dvojkovej. Celý postup je rovnaký, čiže máme číslo,
ktoré delíme pokiaľ je deliteľné dvojkou a vypisujeme do Labelu. Pri prevode z 16 do 2
sústavy taktiež podobne, prevod sa vykonáva z 16 do 10 sústavy a potom do dvojkovej.
Z 10 do 2, 8 a 16
Pri ďalších prevodoch z 10 do 2, 8 a 16 sústavy sa v cykle číslo zo vstupu delí číslom
2, respektíve 8 a 16, pokým vstup nie je 0. Pri prevode do 16 sústavy sa vyskytujú už
spomínané podmienky, ktoré zisťujú aký je zvyšok. Pri jeho hodnotách 10 – 15 sa zapíšu
namiesto číslic písmená A – F.
Z 2 do 10
V uvedenej metóde sa nachádza cyklus for, v ktorom sa budú načítavať znaky vstupu
po jednom a bude sa k nim pridávať násobok čísla 2 na x – tú, pričom x je pozícia, ktorú
aktuálne sledujeme. Potom do premennej cislo priraďujeme znaky zo vstupu po jednom.
V ďalšom riadku sa nachádza výpočet čísla 2 na i mínus prvú podľa toho, na ktorej sme
pozícií. Nasledujúce appendy znamenajú pri všetkých prípadoch to isté – v každom cykle
45
this.add(pole); pole.setBounds(47, 350+pom*20, 200, 30); a_na_cislo=a_na_cislo/16; pom++;
sa im pridáva ďalšia a ďalšia hodnota a po ukončení cyklu sa nakoniec vypíše celý obsah
týchto premenných. Príkazy jLabel8, jLabel9, jLabel10 a jLabel11 slúžia na výpis do okna
aplikácie.
Z 8 do 10
Prevod rovnaký ako pri prevode z 2 do 10 sústavy, len samozrejme použijeme všade
osmičku namiesto dvojky.
46
Z 16 do 8
V tomto prípade sa najskôr zavolá metóda na prevod zo 16 do 10 sústavy
postup_z_16_do_8 a s výsledkom potom pracujeme ako už podľa spomínaných
krokov.
Z 16 do 10
Postup už bol popísaný stým rozdielom, že v podmienkach sa teraz nepriraďujú číslam
písmená po vydelení šestnástkou, ale opačne. Pri vstupe, v ktorom sa môžu objaviť aj čísla
aj písmená, sa písmená prevedú na prislúchajúce čísla.
V ďalšej časti sa nachádza popis hlavnej časti programu, kde nachádza popis prevodu
čísla z dvojkovej, osmičkovej, desiatkovej a šestnástkovej sústavy do ostatných sústav,
ktorý sa objaví v časti VÝSTUP, iba ako výsledok. Okrem toho sa tu volajú už spomínané
metódy, ktoré nám slúžia na zobrazenie postupu riešenia prevodu.
Z dvojkovej do ostatných sústav
Zápis
if(jComboBox1.getSelectedItem().toString().equals("dvojkova"
)){ vyjadruje podmienku: „Ak je v comboboxe1 vybraná položka rovná „dvojkova“.
Zápis
pomocna2=Integer.parseInt(jTextField1.getText(),2); vyjadruje premennú, do ktorej načítame hodnotu z textového pola, a zároveň ju
prevádzame na číselný formát, ktorý aj očakávame ako vstup. Je to metóda, ktorá
automaticky prevedie číslo, ktoré sme načítali do textového pola do desiatkovej sústavy,
keďže v textovom poli sme načítavali číslo v dvojkovej a nie desiatkovej sústave.
V ďalších riadkoch je ošetrená možnosť výberu identickej číselnej sústavy a sú
realizované výpisy do 8, 10 a 16 sústavy podľa toho aká možnosť je vybraná v
jComboBox2. Pri prevode do 16 sústavy je použitá funkcia toUpperCase, ktorá nám
prehodí celý text na veľké písmená bez ohľadu na to či sú malé alebo veľké. Príkazy
postup_z_2_do_8(), postup_z_2_do_10() a postup_z_2_do_16() sa
volajú metódy. Napísaním názvu metódy sa metóda vždy vykoná v tej časti programu kde
je napísaná.
47
Z osmičkovej, desiatkovej a šestnástkovej do iných sústav
Pri opise týchto prevodov nie je nutné popisovať postup, keďže je analogický
s prevodmi z dvojkovej sústavy.
V aplikácií sa nachádza ešte jedna funkcia, ktorá slúži na odchytenie výnimky pre iné
číselné formáty. To znamená, že číslo je možné zadávať iba v tom formáte, ktorý je
zvolený v možnosti „Z“. V opačnom prípade nastane výpis dialógového okna
s upozornením a správou aby sa zadalo číslo v správnom číselnom formáte.
Ako sme už spomínali, aplikácia obsahuje triedu Cislo. Okrem bolo potrebné vytvorit
aj druhú triedu Ukazka, ktorá nám slúži na vykresľovanie objektov. Jedná sa o triedu
rozšírenú o komponent jSrollPane, ktorý predstavuje scroolovateľné okno.
Nastavenie labelu a scrollpane-u prebieha nasledovne.
48
public class Ukazka extends JScrollPane{ private JLabel label; public Ukazka() { init(); }
private void init
label = new JLabel();
label.setVerticalAlignment(JLa
bel.TOP);
setViewportView(label);
setHorizontalScrollBarPolicy(JScro
llPane.HORIZONTAL_SCROLLB
AR_ AS_NEEDED);
setVerticalScrollBarPolicy(JScrollP
ane.VERTICAL_SCROLLBAR_A
S_NE EDED);
Zadefinujeme si metódu, ktorá po každom stlačení tlačidla vypočítaj, najskôr vymaže
obsah starých hodnôt uložených v okne.
Ďalšou metódou bude metóda pridajRiadok, ktorá nám pridáva riadky do premennej
str. Jedná sa o metódu, ktorá má rovnakú funkciu akú sme už mali – stringbuilder.
V ďalších riadkoch povoľujeme html formátovanie. Teda ak by sme použili párový tag
<b>, tak sa nám objaví vo výpise tučné písmo.
Príkaz label.setText(str.toString()) nastavuje hodnotu polu, ktorý sa
bude zobrazovať v scroolovateľnom okne.
49
private void init
label = new JLabel();
label.setVerticalAlignment(JLa
bel.TOP);
setViewportView(label);
setHorizontalScrollBarPolicy(JScro
llPane.HORIZONTAL_SCROLLB
AR_ AS_NEEDED);
setVerticalScrollBarPolicy(JScrollP
ane.VERTICAL_SCROLLBAR_A
S_NE EDED);
public void vymazObsah(){ label.setText(""); }
public void pridajRiadok(String riadok){ StringBuilder str = new StringBuilder(); if(label.getText().equals("")){ str.append("<html>"); }else{ str.append(label.getText()); str.delete(str.indexOf("</html>"),str.length()); str.append("<br>"); } str.append(riadok); str.append("</html>"); label.setText(str.toString());
1.2.2 Popis programu z pohľadu používateľa
Požívateľ aplikácie má možnosť zadať číselnú sústavu z ktorej a do ktorej chce
uskutočniť prevod. Číslo, ktoré chce previesť zadáva do časti VSTUP a výsledok sa
zobrazí v časti VÝSTUP. Pre pochopenie prevodu sa v časti POSTUP zobrazí samotný
postup akým sa dané číslo prevádza. Ovládanie je veľmi jednoduché a intuitívne.
Príklad: Preveďte číslo 100010 z dvojkovej do desiatkovej sústavy.
Obr. 4 Príklad č. 1 - prevod čísla pomocou aplikácie prevodník
50
Príklad: Preveďte číslo CA247 zo šestnástkovej do dvojkovej sústavy (demonštrácia
možnosti scroolovania).
Obr. 5 Príklad č. 2 - prevod čísla pomocou aplikácie prevodník
51
Príklad: Preveďte číslo 1000101011 z dvojkovej do osmičkovej sústavy.
Obr. 6 Príklad č. 3 - prevod čísla pomocou aplikácie prevodník
52
Ďalšie príklady na prevádzanie čísel pomocou aplikácie prevodník sa nachádzajú
v prílohe.
V prípade zle zadaného číselného formátu nám aplikácia zobrazí chybu. (Obr. 5).
Obr. 7 Chybný číselný formát
Taktiež v prípade identicky zvolenej číselnej sústavy nás aplikácia na túto skutočnosť
upozorní (Obr. 6).
Obr. 8 Informácia o identicky zvolenej číselnej sústave
53
5 Záver
K výberu mojej bakalárskej práce ma priviedlo poznanie, že aj práca s číslami môže byť
zaujímavá tak pre žiakov ako aj učiteľov. V predloženej práci som sa pokúsil opísať
základné princípy číselných sústav a dôležité bolo tiež poukázať na ich význam v dnešnej
modernej počítačovej spoločnosti.
Ako už vieme hlavným cieľom bakalárskej práce bolo vytvorenie aplikácie, slúžiacej na
vzájomný prevod čísel medzi jednotlivými číselnými sústavami. Aplikácia, ktorú som
vytvoril spĺňa predpoklady na to aby bola použitá ako didaktická pomôcka pre študentov
na vysvetlenie problematiky prevodov čísel. Dôraz je kladený na dvojkovú, osmičkovú,
desiatkovú a šestnástkovú číselnú sústavu. Pomocou aplikácie možno čísla prepočítavať
medzi hociktorou z nich a pre pochopenie algoritmu je vždy zobrazený aj samotný postup.
Ovládanie aplikácie je jednoduché a intuitívne. V práci som nezabudol ani na potrebnú
dokumentáciu, bez ktorej by bolo ťažké pochopiť, ako vlastne celá aplikácia vznikla a ako
fungujú jednotlivé prevody.
Podľa nadobudnutých výsledkov možno usúdiť, že sa nám daný cieľ podarilo úspešne
naplniť. Na záver netreba zabudnúť na myšlienku, že číselné sústavy sú pre nás veľmi
dôležité a možno si to ani neuvedomujeme, ale tvoria súčasť nášho každodenného života.
54
6 Zoznam použitej literatúry
1 BENĎÁK, Ivan a kol. Z histórie numerácie. [s.a] [online] [cit. 2010-11-11]. Dostupné
na: < http://www.matika.sk/zdroje/numknih.htm>.
2 BEŠENYI, Libor. Číselné sústavy. [s.a] [online] [cit. 2011-02-01]. Dostupné na:
<http://www.accendo.sk/Clanky/CiselneSustavy.html>.
3 GAZDÍKOVÁ, S. 2006. Histéria matematiky. Desiatková sústava : semestrálna práca.
Ružomberok : Katolícka univerzita, 2006. 5 s.
4 HENNYEYOVÁ, Klára. Logické základy číslicových počítačov. [2009] [online] [cit.
2010-12-10]. Dostupné na: <http://www.fem.uniag.sk/cvicenia/ki/hennyeyova
/INFORMATIKA_ZS_denne/info_2_ciselne_sustavy.pdf>
5 HRUŠKA, Karel – DLOUHÝ, Zbyněk – MENCL, Josef. 1964. Aritmetika a algebra.
3. vyd. Praha : SPN, 1978. 307 s.
6 HRUŠKA, Karel a. i. 1960. Aritmetika pre pedagogické inštitúty. Bratislava : SPN,
1960. 228 s.
7 HYNAR, Martin. 2004. Java – nástroje. Praha : Neocortex, 325 s. ISBN 80-86330-
16-8.
8 KLIMEŠ, C. – TURČÁNI, M. 2005. Úvod do operačných systémov. Nitra : FPV
UKF, 2005. 215 s. ISBN 80-8050-895-X.
9 KLOKOČOVÁ, Lívia. Číselné sústavy. SOŠ Vranovská. 2008 [online] [cit. 2011-04-
03] Dostupné na: <http://www.sosvranovska.eu/KLOKOCOVA/CO%20V%20
SKOLE/INF%20pom%C4%82%C2%B4cky/S%C3%BAstavy%20a%20disky.pdf>
10 PALKOVÁ, Zuzana – HENNYEYOVÁ, Klára – OKENKA, Imrich. 2008.
Informatika a informačné technológie. 2. vyd. Nitra : SPU, 2008. 252 s. ISBN 978-80-
552-0113-9.
11 PALUMBÍNY, Daniel a i. 1996. Základy elementárnej aritmetiky. 2. vyd. Nitra :
Vysoká škola pedagogická v Nitre, 1996. 244 s.
12 ŠTANCL, Miroslav. Číselné sústavy – základné rozdelenie číselných sústav. [2006]
[online] Košice : Technická Univerzita v Košiciach. [cit 2011-01-16]. Dostupné na:
<http://mirectu.kvalitne.cz/studium/cissust.pdf>.
55
13 VIRIUS, Miroslav. 2005. Java pro zelenáče. 2 uprav. vyd. Praha : Neocortex, 268 s.
ISBN 80-8633-017-6.
14 ZNÁM, Štefan a kol. 1986. Pohľad do dejín matematiky. Bratislava : Alfa - SNTL, 32
s. 1986. ISBN 63-572-86.
15 ZNÁM, Štefan – FRANEK, Miloš – ZNÁMOVÁ, Anna. 1975. Teória čísel : študijný
text. Bratislava : SPN, 1975. 56 s.
16 Číselné sústavy. Typy číselných sústav. [s.a.] [online] [cit. 2010-12-10]. Dostupné na:
< https://ep.edu.sk/0045/informatika/tudijn%20materily/Ciselne%20sustavy2.ht
m>.
17 Kódy a kódovanie. [2009] [online] [cit. 2010-12-10]. Dostupné na: < http://files.mp
s1c.webnode.sk/200000061-c84e2c947e/Kody%20a%20kodovanie.pdf >
56
7 Prílohy
Príloha 1 Obrazy vybraných desiatkových číslic v dvojkovej, osmičkovej a šestnástkovej číselnej sústave
P = 10 P = 2 P = 8 P = 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
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
50 110010 62 32
100 1100100 144 64
200 11001000 310 C8
1 000 1111101000 1750 3E8
50 000 1100001101010000 141520 C350
100 000 11000011010100000 303240 186A0
Príloha 2 Príklad č. 4 - prevod čísla pomocou aplikácie prevodník
57
58
Príloha 3 Príklad č. 5 - prevod čísla pomocou aplikácie prevodník
59