5 TEMA

 

 

 

Informacijos pateikimas kompiuteryje ir duomenų formatai

 

          Visų tipų duomenys kompiuterio atmintyje vaizduojami bitų rinkiniais. Baziniai duomenų tipai yra:

-            skaičiai:

-       sveikieji skaičiai;

-       realieji (trupmeniniai) skaičiai;

-            simboliniai (tekstiniai) duomenys;

-            grafiniai duomenys;

-            garsas;

-            video.

          Sveikieji skaičiai. Sveikieji skaičiai yra vaizduojami taip vadinamu fiksuoto kablelio formatu. Jame dešimtainio kablelio pozicija yra fiksuota. Sveikiesiems skaičiams dešimtainis kablelis yra po paskutinio skaitmens.

Priklausomai nuo sveikojo skaičiaus ilgio jam vaizduoti skiriama 1, 2 arba 4 baitai:

-         trumpas sveikasis skaičius – 1 baitas;

-         standartinis sveikasis skaičius – 2 baitai;

-         ilgas sveikasis skaičius – 4 baitai.

Norint sveikąjį neneigiamą skaičių pavaizduoti, pvz., dviejuose baituose, reikia jį užrašyti dvejetainėje sistemoje ir papildyti nuliais iš kairės, kad būtų 16 dvejetainių skaitmenų,

pvz.: 5 - 00000000 00000101

Visų galimų standartinių sveikųjų neneigiamų skaičių be ženklo intervalas yra:

0 (00000000 00000000) – 65 535 (11111111 11111111)

Taigi:

ü             viename baite galima pavaizduoti skaičius be ženklo nuo 0 iki 255 (28 – 1),

ü             dviejuose nuo 0 iki 65 535 (216 – 1),

ü             ir keturiuose baituose nuo 0 iki 4 294 967 295 (232 – 1).

         

          Sveikieji neigiami skaičiai. Vaizduojant sveikus skaičius su ženklu, galima būtų kairiausią bitą skirti ženklo vaizdavimui: pvz., 0 reikštų pliusą, o 1 - minusą. Tada dviejuose baituose galima būtų pavaizduoti skaičius nuo +0 iki +32 767 ir nuo -0 iki - 32 767, tačiau tokiu atveju 0 būtų vaizduojamas dviem skirtingais būdais (plius nulis ir minus nulis) , o tam reikėtų specialios aritmetikos, dirbančios su dviem nuliais. Todėl neneigiamų skaičių vaizdavimui naudojamas tiesioginis kodas (vaizduojamas pats skaičius x, t.y. vaizduojamas taip pat kaip ir skaičius be ženklo, tik vienas bitas rezervuojamas ženklui). O neigiamų skaičių vaizdavimui naudojamas papildomas kodas (vietoje skaičiaus -x vaizduojamas skaičius 2N - x, kur N – skiriamų skaičiui pavaizduoti bitų kiekis).

 

          Papildomas kodas. Papildomas kodas gaunamas tokiu būdu:

ü             Pavaizduojamas atitinkamas teigiamas skaičius.

ü             Visi bitai invertuojami, t.y. 0 keičiamas 1 ir atvirkščiai.

ü             Pridedamas 1.

Panagrinėkime, pavyzdžiui, kaip bus pavaizduotas skaičius -5:

ü             1.       5 -                                  00000000 00000101

ü             2.  Bitai invertuojami                 11111111 11111010

ü             3.  Pridedamas 1                      11111111 11111011

Naudojant tokį vaizdavimo formatą visų neneigiamų skaičių kairiausias bitas yra 0, o neigiamų - 1.

Dviejuose baituose galima pavaizduoti sveikus skaičius su ženklu nuo -32 768 iki 32 767:

0                 00000000 00000000

1                 00000000 00000001

                   … …

32 766        01111111 11111110

32 767        01111111 11111111

-32 768       10000000 00000000

-32 767       10000000 00000001

                   … …

-2                11111111 11111110

-1                11111111 11111111

          Analogiškai, viename baite gali būti pavaizduoti sveikieji skaičiai su ženklu nuo -128 iki 127,

o keturiuose baituose – nuo -2 147 483 648 iki 2 147 483 647.

Sveikieji skaičiai kompiuterio atmintyje vaizduojami tiksliai, bet jų kiekis nėra didelis. Be to, dirbant su sveikaisiais skaičiais, pačiam programuotojui reikia rūpintis, kad operacijos rezultatas patektų į

sveikųjų skaičių apibrėžimo sritį. Priešingu atveju galima gauti iš pirmo žvilgsnio "keistus" rezultatus. Pavyzdžiui, matematikoje dviejų teigiamų skaičių suma visada yra teigiamas skaičius, tačiau kompiuteriui 32 767 + 1 = -32 768. Tai galima suprasti tik žinant, kaip sveikieji teigiami ir neigiami skaičiai vaizduojami kompiuterio atmintyje:

Fizinis duomenų vaizdavimas kompiuterio atmintyje gali skirtis nuo aptarto dėl skirtingo baitų išdėstymo. Personaliniuose kompiuteriuose jaunesnieji baitai talpinami atmintyje mažesniais adresais, todėl fiziškai atmintyje sveikasis skaičius 5 dviejuose baituose bus pavaizduotas ne taip:

                                                         5                 00000000 00000101,

o šitaip:                                              5                 00000101 00000000.

 

          Realiųjų skaičių vaizdavimas. Kiekvieno tipo duomenims vaizduoti skiriamas baigtinis bitų skaičius, o kiekvienas bitas gali įgyti tik vieną iš dviejų reikšmių, todėl galima pavaizduoti tik baigtinę reikšmių aibę, t.y. gali būti vaizduojami tik diskretiniai duomenys. Tai reiškia, kad kompiuteryje negalima pavaizduoti, pavyzdžiui, visų atkarpos taškų. Dėl šių priežasčių kyla problemos, vaizduojant kompiuterio atmintyje realius skaičius. Tarp bet kurių dviejų realiųjų skaičių yra be galo daug tarpinių realiųjų skaičių ir jie visi negali būti pavaizduoti kompiuterio atmintyje. Tačiau reikia turėti galimybę atlikti skaičiavimus, kuriuose operuojama su plataus spektro realiaisiais skaičiais: tiek su labai mažais, pavyzdžiui, elektrono masė; tiek su labai dideliais, pavyzdžiui, atstumas iki žvaigždės. Šių problemų sprendimui pravers mokslinis formatas ( angl. scientific notation): kiekvieną skaičių galima užrašyti tokia forma

x = <ženklas> <mantisė> * P<eilė>

kur ženklas yra "+" arba "-", mantisė (t.y. skaičiaus su slankiuoju kableliu užrašo dalis po kablelio) yra neneigiama, o P yra skaičiavimo sistemos pagrindas. Pastebėkime, kad toks užrašas nėra vienareikšmis - keičiant taško poziciją mantisėje ir tuo pačiu metu eilės reikšmę, pats skaičius nesikeičia, pavyzdžiui:

-1.75 * 100 = -17.5 * 10-1 = -0.175 * 101

Dėl vienareikšmiško apibrėžtumo dažniausiai pridedami papildomi reikalavimai mantisei, kad ji būtų normalizuota. Normalizuotos mantisės sąvoka priklauso nuo kompiuterio architektūros. Kai kuriuose kompiuteriuose nenulinio skaičiaus mantisė yra mažesnis už 1 skaičius, kurio pirmas skaitmuo yra nenulinis, t.y.

x = <ženklas> 0.<mantisė> * P<eilė>

Tokiame užraše eilė gali būti ir teigiama, ir nulinė, ir neigiama. Kompiuterio atmintyje dažniausiai vaizduojama ne pati eilė, bet charakteristika - neneigiamas skaičius, gaunamas prie eilės pridėjus konstantą. Kadangi dešimtainio (dvejetainio) taško pozicija nėra fiksuota, todėl šis vaizdavimo formatas vadinamas slankaus kablelio ( angl. floatingpoint) skaičių formatu.

          Vaizduojant realų skaičių keturiuose baituose, ženklui skiriamas 1 bitas (0 reiškia "+", 1 - "–"), mantisei - 23 bitai, o charakteristikai - 8 bitai.

          Taigi, realus skaičius -1.75 keturiuose baituose būtų pavaizduotas taip:

 

 

          Beveik visada realūs skaičiai negali būti pavaizduoti tiksliai, tam kad pavaizduoti kompiuterio atmintyje, jie apvalinami, t.y. gaunama apvalinimo paklaida ( angl. roundoff error). Nors slankaus kablelio formato skaičių kitimo diapazonas labai platus (maždaug nuo 10-45 iki 1038), bet vaizduojant keturiuose baituose (kai mantisei skiriami 23 bitai), tiksliai pavaizduojami tik 6-7 dešimtainiai skaitmenys. Pastebėkime, kad slankaus kablelio skaičiai išsidėstę labai netolygiai: arti 0 labai tankiai, o kuo toliau nuo 0 tuo rečiau - todėl absoliuti vaizdavimo (apvalinimo) paklaida priklauso nuo skaičiaus (jo modulio) dydžio.

          Toliau nagrinėsime realių skaičių vaizdavimą konkrečiai personaliniuose kompiuteriuose. Personaliniuose kompiuteriuose eilė yra dvejetainė (P=2) ir pirmasis mantisės skaitmuo visada turi būti 1, todėl naudojama kiek kitokia skaičiaus forma

x = <ženklas> 1.<mantisė> * 2<charakteristika>,

 

kur charakteristika yra sveikas neneigiamas skaičius, gaunamas prie eilės pridėjus konstantą. Šios konstantos dydis priklauso nuo dydžio atminties, skiriamos skaičiui (tame tarpe ir jo charakteristikai) pavaizduoti, pavyzdžiui, kai realiam skaičiui skiriami 4 baitai, charakteristika yra eilė + 127.

          Panagrinėkime pavyzdį. Tarkime, kad personalinio kompiuterio atmintyje norime pavaizduoti skaičių -1.75. Pirmiausia jį reikia užrašyti dvejetainėje skaičiavimo sistemoje

-1.75 = -(1 + 1/2 + 1/4) = -1.112

Tada užrašome dvejetainiu moksliniu formatu taip, kad sveikoji dalis būtų lygi 1

-1.112 = -1.11 * 20

Gauname, kad ženklas yra “–", mantisė yra 11, o charakteristika yra 127 (= 0 + 127). Taigi, -1,75 PK atmintinėje realiai bus:

         

          Tekstiniai (simboliniai) duomenys. Dabar kompiuteriai daug dirba ne tik su skaičiais, bet ir su tekstais (simboliais). Norint simbolius vaizduoti kompiuterio atmintyje, reikia sudaryti simbolių kodų lentelę, kuri vienareikšmiškai susietų visus reikalingus simbolius su bitų rinkiniais. Kyla klausimas, kiek bitų reikia simbolių vaizdavimui. Anglų kalboje yra 26 didžiosios ir 26 mažosios raidės, 10 skaitmenų ir apie 35 specialius simbolius, naudojamus skyrybai ir pan. - iš viso apie 100 simbolių. Be to, dar reikia specialių "valdančių simbolių", kurie turi specialią prasmę tekstų redaktoriams (pavyzdžiui, nutrinti simbolį) arba kompiuterio įrenginiams (pavyzdžiui, cyptelti). Šešių bitų nepakanka (26 = 64), taigi minimaliam kodui reikia 7 bitų (27 = 128). Dauguma kodų naudoja 8 bitus, įtraukdami daugiau specialių, grafinių simbolių arba kontrolei, todėl tradiciškai kompiuteriai skiria 8 bitus, t.y. vieną baitą, simbolių vaizdavimui. Kadangi kompiuterijos vystymosi lyderė buvo JAV, tarptautiniu mastu įsitvirtino ten sukurti standartai ir, būtent, ANSI (Amerikos nacionalinis standartų institutas) standartas ASCII ( Amerikos kodų standartas informacijos pasikeitimui). Jį sudaro dvi lentelės: 7 bitų ilgio kodų – bazinė ir 8 bitų (1 baito) išplėstoji. Bazinėje lentelėje kodų reikšmės yra nuo 0 iki 127, išplėstojoje – nuo 128 iki 255.

          Apžvelkime ASCII kodų lentelę (žr. pav.1). Pirmi 32 bazinės lentelės kodai (0-31) skirti kompiuterių įrangos gamintojams koduoti valdymo signalus. Kodai, kurių reikšmės nuo 32 iki 127, panaudoti užkoduoti anglų kalbos raides kitus specialius rašybos simbolius bei skaitmenis. Trijų pagrindinių grupių - skaitmenys, didžiosios raidės ir mažosios raidės - simboliai grupėse eina iš eilės be praleidimų. Pvz.:

                             A - 6510 – 010000012 - 4116;                      g – 10310 - 011001112 - 6716;

                             ženklas > - 6210 – 001111102 - 3E16 ;

                             skaitmuo 1 - 4910 - 001100012 - 3116 ir t. t.

Kiti specialūs simboliai - skirtukai, operacijų ženklai, skliaustai ir pan. išbarstyti likusiose vietose. Pavyzdžiui, simbolio " " (tarpas) kodas 32, "[" (atidarantis laužtinis skliaustelis) - 91, "{" (atidarantis riestinis skliaustelis) - 123.

Pav. 1.   7 –baitė ASCII kodų lentelė

Pav. 2    Išplėstosios ASCII kodų lentelės standartinis variantas

         

          Nacionalinių rašmenų kodavimas. Nacionalinių rašmenų kodavimui naudojama antroji arba išplėstoji ASCII kodų lentelės dalis, kurios kodų reikšmės yra nuo 128 iki 255 (dvejetainiame pavidale vyriausiojo bito reikšmė yra 1). Standartiniame variante joje yra įvairūs psiaudo-grafikos ženklai. Kadangi šių rašmenų įvairovė labai didelė, todėl ir kodavimo lentelių atsirado labai daug. Pvz. Rusijoje išplito jų standartas vadinamas KOI-8, Lietuvoje lietuviškoms raidėms koduoti atsirado taip pat keli variantai. Visa tai kėlė nemažai problemų ir programų kūrėjams ir jų vartotojams. Skirtingos kodų lentelės naudojamos ir skirtingose operacijų sistemose (DOS, Windows). 2000-ųjų pradžioje buvo priimti standartai, įvedę šioje srityje tam tikrą tvarką. Rašto ženklų kodavimą 8 bitais apibrėžė tarptautinių standartų serija ISO/IEC 8859. Ją sudaro atskiros dalys (standartai), skirtos tam tikrų kalbų grupių rašto ženklams koduoti. Standartų serija yra atvira, t. y. ji gali būti papildyta naujomis dalimis. Dabar yra 15 dalių. Serijos 13-oji dalis ISO/IEC 8859-13 apibrėžia ženklų rinkinį, turintį lietuviškus rašto ženklus ir vadinamąją 7-ąją lotynų abėcėlę. Šis standartas pripažintas ir Lietuvos standartu, jam suteiktas žymuo LST ISO/IEC 8859-13- 2000. Jo kodų lentelė kompiuteriuose žymima trumpiau –ISO-8859-13. Šis standartas kaip ir kiti šios serijos standartai nepriklauso nuo operacijų sistemos ir naudojami duomenų mainams tarp įvairių OS, interneto, elektroninio pašto srityje. OS “Windows” turi savą kodų lentelių sistemą. Lentelės žymimos skaičiais 1250, 1251 ir t.t. Baltijos šalims skirta “Windows 1257” lentelė, atitinkanti ISO-8859-13. Plačiai prieš “Windows” operacijų sistemą naudota operacijų sistema DOS, turėjo lietuviškų rašmenų lentelę, įvardintą skaičiais 775, kuri turi visus standarto ISO-8859-13 ženklus. Tekstai, parašyti DOS terpėje, naudojant 775 kodų lentelę, gali būti perskaityti su lietuviškomis raidėmis ir dabartinėse Windows terpėse. Lietuvių kalba turi išskirtiną savybę – kirčiuotas raides, todėl yra sudarytas ir kirčiuotų raidžių standartas LSTISO/IEC 8859-13, dalį užsienio kalbų raidžių ir specialiųjų ženklų pakeitus lietuviškomis kirčiuotomis raidėmis.

 

Pav. 3  Išplėstoji ASCII kodų lentelės dalis su lietuviškomis

raidėmis ISO – 8859 – 13 standartas

 

          Universalioji teksto kodavimo sistema UNICODE. Analizuojant organizacinius sunkumus, susijusius su vieningos įvairių kalbų simbolių kodavimo sistemos sukūrimu, galime padaryti išvadas, kad svarbiausia to problema – ribotas kodų reikšmių kiekis, lygus 28 = 256. Pailginus šį kodą, galimų reikšmių kiekis žymiai išaugtų. Tokia sistema, kurioje 1-am simboliui užkoduoti skirta 16 bitų (2 baitai) vadinama universaliąja kodavimo sistema –UNICODE. 16 skilčių kodas leidžia užkoduoti 65536 skirtingus simbolius, o to pakanka daugumos planetos kalbų simboliams užkoduoti. Pereinant į šią teksto kodavimo sistemą visi tekstiniai failai padvigubėja, todėl tik dabar, išaugus kompiuterinių sistemų resursams, vis plačiau pereinama prie šios kodavimo sistemos, kuri apima ir senąją 8 bitų ASCII kodų sistemą ir dar 256 kartus padidina galimų užkoduoti simbolių skaičių.

 

          Grafinių duomenų kodavimas. Terpė, kurioje formuojamas grafinis vaizdas, ar tai būtų displėjaus ekranas, ar popieriaus lapas spausdintuve, sudalijamas į tam tikrą skaičių taškų horizontalia ir vertikalia kryptimis. Šie taškai dar vadinami pikseliais (pixel). Šis taškų skaičiai horizontalia ir vertikalia kryptimis vadinami skiriamąja geba. Grafiniai elementai sudaromi iš įvairiaspalvių taškų. Galimas dvejopas jų aprašymas – vektorinis ir rastrinis (matricinis, pilno užpildymo). Vektoriniu būdu vaizduojamą piešinį sudaro atkarpų (vektorių) rinkinys. Šiuo atveju piešinio kompiuterinis kodas bus informacija apie jį sudarančius vektorius, t.y. vektorių pradžios ir pabaigos taškų koordinatės, atspalvis. Tarpinių vektoriaus taškų koordinatės bus suskaičiuojamos. Rastriniu būdu vaizduojamo piešinio kodą sudaro informacija apie visų taškų spalvingumą.

          Vektorinis vaizdavimo būdas:

          Ekranas, skiriamoji geba 800 x 600, 1024 x 768 ir t.t.

 

          Atspalvių įvairovė priklausys nuo paskirto kodo ilgio. Pvz., jei tam skirsime 1 baitą, turėsime 256 pilkumo atspalvius dvispalviame piešinyje.

 

          Spalvų kodavimas. Spalvoto vaizdo kodavimui naudojamas spalvos dekompozicijos į pagrindines sudedamąsias principas. Pagrindinėmis sudedamosiomis spalvomis naudojamos 3 spalvos – raudona (R-red), žalia (G-green) ir mėlyna(B-blue). Praktiškai laikoma (nors teoriškai ne visai taip), kad bet kokią spalvą galime gauti iš šių trijų spalvų mišinio. Tokia spalvų kodavimo sistema vadinama RGB. Jeigu kiekvienos bazinės spalvos ryškumo lygiui užkoduoti naudosime 256 reikšmes (8 bitų kodą), tai vieno taško spalvai apibūdinti reikės 24 skilčių (3 baitų) kodo. Toks kodavimas leidžia vienareikšmiškai nurodyti vieną iš 16,5 milijono skirtingų spalvų. Toks jų kiekis yra artimas žmogaus akies jautrumui. Šis spalvų kodavimas kompiuterinėse sistemose vadinamas pilnaspalviniu ( True Color). Šiuolaikinėse sistemose jo ilgis gali siekti ir 32 skiltis.16 skilčių spalvų kodas vadinamas High Color, jis turi 65536 spalvas. Poligrafijoje naudojama kita spalvų kodavimo sistema, kurioje naudojamos taip vadinamos papildomos spalvos, t. y. spalvos, papildančios pagrindinę spalvą iki baltos spalvos. Tokios papildomos spalvos yra žaliai mėlyna ( Cyan-C), purpurinė ( Magenda-M) ir geltona ( Yellow-Y). Praktiškai prie jų dar pridedama ketvirta spalva – juoda ( Black-K), todėl ši spalvų kodavimo sistema vadinama CMYK ir koduojama 32 skilčių (4 baitų) kodu.

 

          Garso informacijos kodavimas. Garso informacija į kompiuterines sistemas atėjo vėliau nei skaičiai, tekstas ar grafika, todėl dar ir iki šiol dauguma garso kodavimo dvejetainiais kodais metodų nėra visuotinai standartizuoti, naudojami taip vadinami korporaciniai standartai, t.y. sukurti ir naudojami atskirų stambių kompanijų, kuriančių garso informaciją apdorojančią aparatinę ir programinę įrangą. Garso sintezavimui ir kodavimui kompiuteriuose dažniausiai naudojami trys metodai:

ü             dažnių moduliacijos;

ü             garso sintezės iš bangų lentelės;

ü             garso fizinio modeliavimo.

          FM ( Frequency Modulation) – žemesnio dažnio signalo moduliacijos aukštesnio dažnio signalu metodas remiasi teiginiu, kad teoriškai bet koks sudėtinis garsas gali būti išskleistas į paprastų skirtingo dažnio harmoninių signalų seką, kurių kiekvienas išreiškia taisyklingą sinusoidę, t. y. gali būti skaitiškai aprašytas (užkoduotas).

          Gamtoje garso signalai išreiškia nepertraukiamą spektrą, jie yra analoginiai. Koduojant jie yra diskretizuojami.

          Dažnių moduliacijos metodas (FM). Tai atlieka specialūs įrenginiai, vadinami analoginiais – skaitiniais keitikliais. Pagrindiniai skaitiniai garso parametrai yra jo tonas (jį aprašančios sinusoidės dažnis), matuojamas hercais bei garso trukmė, matuojama milisekundėmis. Tai reiškia, kad šiuo metodu bet kokį garsą galima išreikšti dviem sveikaisiais skaičiais. Sintezuojant FM metodu, keičiamo dažnio ir amplitudės harmoniniai virpesiai moduliuojami kitais aukštesniais virpesiais ir moduliuoti virpesiai sumaišomi. Taip gaunami sudėtingi virpesiai, imituojantys tam tikrą instrumentą. Gautojo signalo intensyvumas keičiamas taip, kad atitiktų sintezuojamam instrumentui (klavišiniui, pučiamajam) būdingą signalo intensyvumo kitimą. Taip sintezuoti garsai skiriasi nuo natūralių instrumentų, tačiau jų

kodas pakankamai kompaktiškas ir buvo naudojamas pirmosiose kompiuterinėse garso apdorojimo sistemose, gerai tinka žaidimams įgarsinti.

          Garso sintezės iš bangų lentelės metodas. Artimesni natūraliems yra garsai, sintezuojami iš kompiuterio atmintyje saugomų skaitmenine forma įrašytų trumpų natūralių garso fragmentų. Toks metodas vadinamas garso sintezės iš bangų lentelės metodu ( Wave Table Synthesis). Žargoniškai saugomi garsų fragmentai vadinami semplais ( Samples), o pats metodas semplingu ( Sampling). Šiuo metodu koduotas failas saugomas .wav plėtinį turinčiame faile, kurį sudaro informacija, nurodanti kokius ir kaip apdoroti natūralaus garso fragmentus, t. y. semplus. Nurodomas instrumento tipas, modelio Nr., tono aukštis, garso trukmė ir intensyvumas, jų kitimo dinamika, kai kurie aplinkos, kurioje atsiranda garsas, parametrai, kiti garsą charakterizuojantys duomenys. Panaudodamas šiuos duomenis bei turimus garso semplus, garso procesorius sukuria jo atgaminimo kodą, kuris perduodamas į skaitmeninį – analoginį keitiklį ir iš jo į akustinę sistemą.

          Garso fizinio modeliavimo metodas. Šiuo metodu atliekamas virpesių atsiradimo ir kitimo procesų tikrame instrumente modeliavimas ( Physical Modelling). Garsų sintezatoriams, kurie modeliuoja virpesių atsiradimo ir kitimo procesus tikrame instrumente, nereikia talpios atmintinės, bet reikia sudėtingo ir labai spartaus garso procesoriaus, kuris suspėtų modeliuoti instrumento kuriamus virpesius. Šie sintezatoriai pranašesni dar ir tuo, kad grojant MIDI ( Musical Instruments Digital Interface) instrumentu galima keisti daug jo parametrų. Garso įrašymo ir atkūrimo kokybė labai priklauso nuo to, kaip tiksliai analoginis signalas yra paverčiamas skaitmeniniu ir atvirkščiai. Analoginis signalas skaičiais bus aprašomas tuo geriau, kuo dažniau (diskretizuojant) ir tiksliau (kvantuojant) bus matuojamos jo momentinės reikšmės (Sampling). Pvz., CD kokybei reikia 44,1 kHz ir 16 bitų, tada 1 min. įrašo užims 10,5 MB, o telefoninei kokybei pakaks ir 5,5 kHz ir 8 bitų, tada 1 min. užims tik 0,65 MB.

 

 

Aritmetiniai kompiuterių pagrindai

 

          Šiuolaikiniai kompiuteriai turi pakankamai išvystytas komandų sistemas, jungiančias dešimtis ir šimtus mašininių operacijų. Tačiau bet kokios operacijos vykdymas remiasi paprasčiausių mikrooperacijų, tokių kaip sudėtis ir postūmis panaudojimu. Tai leidžia turėti vieningą aritmetinį loginį įrenginį, skirtą atlikti įvairiausias informacijos apdorojimo operacijas. Dviejų dvejetainių skaičių A ir B sudėties taisyklės parodytos lentelėje:

 

          Skaičių kodai. Tokias lenteles galima sudaryti ir kitoms aritmetinėms ar loginėms operacijoms. Tačiau būtent sudėties operacija yra visų kitų veiksmų atlikimo pagrindas. Skaičiaus ženklui rezervuojama viena skiltis. Ženklas “+” koduojamas nuliu ir ženklas ”-” – vienetu. Tačiau veiksmai su tokiais tiesioginiais kodais nėra patogūs, nes reikia atskirai vertinti ženklų skilčių reikšmes, nuo kurių priklausytų ir pats operacijos algoritmas (pvz., sudėtis ar atimtis). Todėl kompiuteriuose visos operacijos atliekamos su skaičiais, išreikštais mašininiais kodais. Jie leidžia ženklų kodus apdoroti taip pat kaip ir skaičių skiltis ir atimties operaciją pakeisti sudėtimi. Tam naudojami:

ü             tiesioginis kodas (tk);

ü             atvirkščiasis kodas (ak);

ü             papildomas kodas (pk).

          Tiesioginis kodas (tk). Tiesioginį skaičiaus kodą sudaro jo absoliučiosios reikšmės dvejetainis kodas ir ženklo kodas (nulis arba vienetas) prieš vyrausią skaičiaus skiltį.

 

          Atvirkščiasis kodas (ak). Jis gaunamas pagal tokią taisyklę: teigiamų skaičių atvirkščiasis kodas sutampa su jų tiesioginiu kodu, o neigiamų skaičių atvirkščiasis kodas gaunamas invertavus (pakeitus priešingomis reikšmėmis) skaičiaus skiltis ir ženklo skiltyje parašius vienetą.

Teigiamo skaičiaus C ir jo neigiamos reikšmės atvirkščiojo kodo suma duoda taip vadinamą mašininį vienetą MVak = 1 111…11.

 

          Papildomas kodas (pk). Teigiamų skaičių papildomas kodas sutampa su jų tiesioginiu kodu. Neigiamų skaičių papildomas kodas gaunamas prie jo atvirkščiojo kodo pridėjus vienetą jauniausioje skiltyje (20 – sveikiesiems skaičiams, 2-k – trupmeniniams).

         

          Sudėtis (atimtis). Atimties operacija pakeičiama sudėtimi su atvirkščiuoju arba papildomu kodu.

          Dėmenys privalo turėti vienodą skilčių kiekį. Ženklų skiltys dalyvauja sudėtyje kartu su reikšminėmis skaičiaus skiltimis.

          Aritmetika mašininiais kodais.

 

Loginiai kompiuterio pagrindai

 

          Kompiuterių veikimą galime nagrinėti techniniu bei programiniu aspektais. Techninis kompiuterio veikimas remiasi “trimis banginiais”:

ü             dvejetaine abėcėle;

ü             logikos algebra;

ü             elektroninėmis schemomis.

          Kaip jau įsitikinome, visa kompiuteriuose apdorojama informacija išreikšta dviem simboliais – 0 ir 1. Su dviem priešingybėmis susiduriama ir logikoje – moksle apie mąstymo dėsnius ir jo formas. Logikos tikslas – nustatyti, ar nagrinėjami samprotavimai, įrodymai, išvados yra teisingi, ar klaidingi. Taigi, galima sakyti, kad logika operuoja dviem simboliais:

-         teisingas ir

-         klaidingas.

Elementari samprotavimų dalis, apie kurią galima pasakyti, kad ji yra teisinga arba klaidinga, logikoje vadinama teiginiu. Kiekvienas teiginys turi vieną iš dviejų loginių reikšmių:

-         teisingas arba

-         klaidingas.

 

          Logikos algebra. Logikos abėcėlę, apibūdinančią teiginių teisingumą, sudaro du simboliai (loginės reikšmės). Jie žymimi įvairiai:

         

Logikos algebra-tai logikos mokslo šaka, nagrinėjanti operacijas su loginėmis reikšmėmis bei tų operacijų savybes. Logikos algebra dar vadinama Būlio algebra. Ją sukūrė anglų mokslininkas Džoržas Būlis (George Boole) devyniolikto šimtmečio viduryje. Logikos algebros raida siejama su automatikos ir skaičiavimo technikos projektavimu. Mat elektriniuose ir elektroniniuose prietaisuose duomenys koduojami abėcėle, turinčia du simbolius ( grandine srovė teka arba neteka, taško potencialas aukštas arba žemas ir t. t. ). Šitokias dvi būsenas patogu žymėti loginiais simboliais - 0 ir 1. Reikia įsidėmėti, kad šie žymenys nieko bendro su skaitmenimis neturi, ir nepainioti aritmetinių reikšmių ( skaičių ) su loginėmis reikšmėmis.

          Loginės operacijos. Loginės reikšmės 0 ir 1 yra pastovūs dydžiai, arba loginės konstantos. Be šių konstantų, dar vartojami, loginiai kintamieji dydžiai arba dar trumpiau - loginiai kintamieji. Juos žymėsime raidėmis, pvz., a, b, x. Loginiai kintamieji gali įgyti logines reikšmes 0 ir 1. Skaičiavimo technikos schemos atlieka veiksmus, atitinkančius logikos algebros operacijas. Vadinasi, logikos algebra natūraliai aprašo skaičiavimo technikos elementų veikimą. Norint suvokti elementarius veiksmus, kuriuos atlieka kompiuteris, pravartu detaliau susipažinti su logikos algebra. Programuojant taip pat neapsieinama be logikos algebros operacijų.

Toliau nagrinėsime ne visą logiką, o tik logikos algebrą. Logikos algebroje svarbiausios operacijos yra šios:

ü             loginis neigimas (inversija) - ¬

ü             loginė sudėtis (disjunkcija) - Ú

ü             loginė sandauga (konjunkcija) - Ů

 

          Inversija (loginis neigimas). Neigimo operacija logines reikšmes keičia priešingomis. Logikos algebroje neigimas žymimas brūkšneliu virš teiginio, kompiuterijoje prieš teiginį rašomas žodelis not arba ženklas ¬. Kompiuterio schemose logines operacijas atliekančius elementus sutarta žymėti tam tikrais ženklais. Neigimą atliekantis loginis elementas vadinamas inverteriu ir žymimas šitaip:

Paneigtą loginę reikšmę (logikoje) arba invertuotą (paneigtą) signalą (technikoje) dar kartą paneigus (invertavus), gaunama pradinė (neinvertuota ) reikšmė arba pradinis signalas.Taigi

Tai dvigubo neigimo dėsnis. Pailiustruosime jį pavyzdžiu. Tarkime, kad pradinis teiginys yra toks: “šiandien lyja”. Paneigę jį, gausime “šiandien nelyja”. O dabar paneikime ir šį teiginį: “netiesa, kad šiandien nelyja”. Nesunku iš šio sakinio suvokti, kad “šiandien lyja”. Taigi vėl gavome pradinį sakinį.

          Disjunkcija(loginė sudėtis). Gyvojoje kalboje teiginiai ( sakiniai) dažnai jungiami jungtuku “ arba”. Pvz., orų prognozę nusakantis teiginys - “šiandien lis arba snigs”. Jis sudarytas iš dviejų teiginių: “šiandien lis” ir “šiandien snigs”, sujungtų jungtuku “arba”. Oro prognozė, taigi ir ją atitinkantis teiginys, bus teisinga, jeigu šiandien lis arba jeigu šiandien snigs ir klaidinga vieninteliu atveju - kai šiandien nei lis, nei snigs. Taigi, natūralu sudėtinį teiginį, gautą sujungus du kitus teiginius jungtuku “arba”, laikyti teisingu, kai bent vienas arba du jį sudarantys teiginiai yra teisingi. Logikoje teiginių sujungimo jungtuku “arba” operacija vadinama disjunkcija ir žymima ženklu Ú arba žodeliu or. Pvz., jeigu ankstesnius teiginius žymėtume x ir y, tai oro prognozės teiginį “šiandien lis arba snigs” būtų galima užrašyti šitaip: x Ú y .

Disjunkcijos operaciją atliekantis loginis elementas vadinamas surinkimo elementu. Mat jo išėjimo signalas lygus vienetui, kai bent vienas įėjimo signalas lygus vienetui.

          Konjunkcija (loginė sandauga). Kelis teiginius galima sujungti į vieną, naują teiginį. Gyvojoje kalboje tai atliekama dažniausiai vartojant jungtuką “ IR “. Pavyzdžiui teiginius: “Vakar aš mačiau filmą”, “Šiandien aš aplankiau parodą” galime sujungti šitaip: ”Vakar aš mačiau filmą ir šiandien aš aplankiau parodą”. Naujas sudėtinis teiginys bus teisingas tik tada, kai teisingi abu jį sudarantys teiginiai. Visais kitais atvejais jis klaidingas. Logikoje teiginių sujungimo jungtuku “ir” operacija vadinama konjunkcija ir žymima ženklu Λ arba žodeliu and. Pavyzdžiui, jeigu du ankstesnius teiginius pažymėtume x ir y, tai naująjį teiginį būtų galima užrašyti šitaip: x Λ y. Loginėse schemose konjunkcija žymima:

Konjunkciją atliekantis loginis elementas vadinamas sutapimo elementu. Mat jo išėjimo signalas lygus vienetui tik tuomet, kai abu įėjimo signalai sutampa ( ir abu yra vienetai ).

 

          Loginiai reiškiniai. Loginės operacijos argumentas gali būti ne tik teiginio reikšmė (konstanta, kintamasis ), bet ir kitos loginės operacijos rezultatas.

1 p a v y z d y s. Konjunkciją: a Λ b paneikime, t.y. jos rezultatą laikykime neigimo operacijos argumentu. Tam dedame neigimo brūkšnį virš viso paneigiamo reiškinio:

2 p a v y z d y s. Dviejų konjunkcijų a Λ b ir c Λ d disjunkcija:

a Λ b Ú c Λ d.

 

3 p a v y z d y s. Dviejų disjunkcijų a Ú b ir c Ú d konjunkcija:

( a Ú b ) Λ ( c Ú d ).

Visi pateikti pavyzdžiai yra loginiai reiškiniai. Loginį reiškinį sudaro loginės konstantos (0 ir 1 ), loginiai kintamieji, loginių operacijų ženklai ir lenktiniai skliaustai.

 

4 p a v y z d y s. Tarkime, kad skelbimo turinys toks: “Perku dviejų arba trijų kambarių butą. Buto pirmame aukšte nesiūlyti “. Užrašykime loginį reiškinį, apibūdinantį pageidaujamą butą. Pažymėkime buto savybes šitaip:

-         k2- dviejų kambarių butas,

-         k3- trijų kambarių butas,

-         p - butas pirmame aukšte.

Tuomet keitėją tenkins toks butas, kurį atitiks reiškinio

reikšmė.

5 p a v y z d y s. Aš turiu tiek pinigų, kad galiu nusipirkti arba kostiumą , arba batus bei dviratį. Pažymėkime teiginius raidėmis: galiu nusipirkti:

-         kostiumą - raide k,

-         batus - b,

-         dviratį - d.

Tuomet galimą pirkinį atitiks šitoks loginis reiškinys:

Jeigu nusipirksiu kostiumą, tai neliks pinigų nei batams, nei dviračiui, o jei kostiumo nepirksiu, tai turėsiu pinigų batams arba dviračiui, arba ir batams, ir dviračiui.

 

6 p a v y z d y s. Tarkime, kad jūs konstruojate automatą, kuris įjungia šviesą autobuse tik tada, kai lauke tamsu arba kai atidarytos autobuso durys. Automatas gauna šitokius signalus:

-         x - iš fotoelemento ( x = 1, kai šviesu ),

-         y - iš durų mechanizmo ( y = 1, kai durys atviros ).

Taigi, automato veikimą nusako šitoks loginis reiškinys : 

         

          Loginės schemos. Pagrindinis Būlio algebros panaudojimo tikslas – loginių schemų (LS) struktūrinis-funkcinis aprašymas. Jei LS įsivaizduosime kaip tam tikrą “juodąją dėžę” su n įėjimų ir vienu išėjimu, jos elgseną galima apibrėžti logine funkcija F(x1, x2,…xn) su n loginių kintamųjų.

Loginės F – funkcijos gali būti užduodamos teisingumo lentelėmis arba loginiais reiškiniais. LS, pateikiamos vienu iš šių būdų, vadinamos kombinacinėmis.

          Teisingumo lentelės. Jose kairėje pusėje išvardijamos visos įmanomos argumentų reikšmės, dešinėje – jas atitinkančios funkcijos reikšmės.

 

          Pilna 2 argumentų funkcijos reikšmių lentelė. Šių reikšmių kiekis gaunamas iš formulės 2k, kur k = 2n , n – argumentų skaičius. Taigi, dviejų kintamųjų loginė funkcija turi 16 skirtingų reikšmių.

Y1 – konjunkcija; Y7 - disjunkcija

Y8 – disjunkcijos inversija (Pirso funkcija ARBA-NE)

Y14 – konjunkcijos inversija (Šeferio funkcija IR-NE)

         

2 skilčių sumavimo schemos. Sudarysime dviejų skilčių sumavimo schemą, panaudodami bazinius loginius elementus:

 

 

                                              

 

Literatūra:

  1. V. Dagienė. INFORMATIKA. Trumpas informatikos kursas, L-la UAB “Gimtinė”, Vilnius, 2002.
  2. Kompiuterika moksleiviams ir studentams / B. Burgis ir kt., Kaunas: Technologija.-1999.
  3. А.П. Пятибратов и др., Вычислительные системы, сети и телекоммуникации. Учебник для ВУЗов, Москва, “Финансы и статистика”, 2002.
  4. G. Grigas. Lietuviški rašmenys ir kodų lentelės, Informatika, 1998, Nr. 33.