Programovanie makier v LibreOffice: Operátory (3)

LO.png Čaká nás logický operátor IMP a úvod do bitových operátorov. Trochu si osviežime i poznatky z výrokovej logiky, ktoré vám pomôžu pochopiť niektoré veci pod „kapotou“ počítača.  

Logický operátor IMP

Operátor IMP ako implikácia je najťažšie zapamätateľný (aspoň pre mňa bol) zo všetkých povedaných operátorov. Výraz v IMP je nepravdivý len vtedy, ak prvý výraz je pravdivý a druhý výraz nepravdivý. V ostatných prípadoch je výraz pravdivý. Fajn, poďme sa presvedčiť na príklade.

1. príklad: Chovanie operátora IMP

Sub example
 Dim retazec As String
 Dim pole1()
 Dim pole2()
 Dim i As Integer

 pole1() = Array(True, False, True, False)
 pole2() = Array(True, False, False, True)

 For i = LBound(pole1()) To UBound(pole1())
 retazec = retazec & pole1(i) & " IMP " & pole2(i) & " = " & CBool(pole1(i) 
 IMP pole2(i)) & CHR(10)
 Next

 MsgBox retazec 
End Sub

Výsledná činnosť makra Výsledná činnosť makra

Rozbor makra: Vidíte, že len jeden prípad dáva IMP nepravdivý a to ak prvý výrok je pravdivý a druhý nepravdivý 

Bity, bajty a výroková logika

Ešte predtým, než prejdeme k bitových operátorom, treba si niečo povedať o bitoch, bajtoch a výrokoch.

Určite som niekde spomínal v rámci tohto seriálu spomínal, čo sú to bity a bajty. Zopakujme si termíny. Jeden bit predstavuje nejakú pravdivostnú hodnotu. Hodnota môže mať dve stavy. Pravdivú a nepravdivú.

Ukážka: 

0 – 1 bit
01 – 2 bitov
101 – 3 bitov
1011 – 4 bitov
10101 – 5 bitov
111000 – 6 bitov
1110011 – 7 bitov
01010101 – 8 bitov

Ešte poznámka, to či je skupina výrokov 5, 6 alebo 8 bitová, závisí od počtu výrokov v skupine. Výroky, pravdivostné vzťahy a javy s nimi spojené skúma práve výroková logika.

Môj najobľúbenejší príklad a prvá skúsenosť s výrokovou logikou na vysokej škole je bitová (dvojková) sústava čísel od 0 do 15 v 4 bitovom predvedení. Stačia nám 4 bity, aby sme vyjadrili v bitovej formulácii všetky čísla od 0 do 15.

0000 = 0
0001 = 1
0010 = 2
0011 = 3
0100 = 4
0101 = 5
0110 = 6
0111 = 7
1000 = 8
1001 = 9
1010 = 10
1011 = 11
1100 = 12
1101 = 13
1110 = 14
1111 = 15

Zaujímavosťou, ktorú spomeniem je, že vieme si spočítať, koľko tých stavov v nejakej bitovej formulácie môžeme využiť. Napríklad ak máme 4bitovú formuláciu, počet stavov je maximálne 16. Keďže začíname od čísla 0, tak od 0 do 15. Ako sa k číslu 16 môžeme dostať? Vzorcom 2^n, kde číslo 2 znamená dve možné pravdepodobnostné hodnoty (od toho aj názov bitová resp. dvojková sústava) a n ktorá predstavuje rozsah bitov, o ktorej sa celý čas bavíme. Čiže 2^4 = 16.

Určite poznáte ASCII tabuľku a ktorý nevedia o čom je reč, vysvetlím. ASCII tabuľka je tabuľka v ktorej sú znaky a k týmto znakom je priradená bitová reprezentácia znakov. Tejto bitovej formulácie už rozumie váš mozog počítača, procesor. Keď zadáte klávesu  k, tak zadané písmeno je definované číslom 107 a toto číslo sa pretaví do 8-bitovej podoby, ktorej rozumie procesor.

ASCII tabuľka je 8-bitová a už podľa známeho vzorca 2^8 = 256 stavov. Číslujeme od nuly, preto rozsah čísel pri 8-bitovej reprezentácii je od 0 do 255. Aby sme zbytočne nevypisovali, ako vyzerá 256 stavov 8 bitovej reprezentácii, vypíšeme len prvých 16 stavov v 8 bitovej reprezentácii.

0000 0000 = 0
0000 0001 = 1
0000 0010 = 2
0000 0011 = 3
0000 0100 = 4
0000 0101 = 5
0000 0110 = 6
0000 0111 = 7
0000 1000 = 8
0000 1001 = 9
0000 1010 = 10
0000 1011 = 11
0000 1100 = 12
0000 1101 = 13
0000 1110 = 14
0000 1111 = 15

A aká reprezentáciu bude mať číslo 16? 17? Väčšina tutoriálov skončí pri čísle 15 a väčšina začiatočníkov sú na pochybách, ako pokračovať. Dám vám ešte tieto dve čísla ako pokračovanie.

0001 0000 = 16
0001 0001 = 17

A takto to pokračuje až k číslu 255. Rovnaké pravidla platia i pri iných bitových reprezentáciách. 

Bitové operátory

Poznáme logické operátory, napríklad logický súčin AND a logický súčet OR. Existujú aj takzvané bitové operátory. Napríklad bitový súčin AND a bitový súčet OR. Je medzi nimi rozdiel? Jedine vo forme, funkcionalitou ide o tu istú vec.

Napríklad: 

False AND True False  operátor AND je logický
0 AND 1 = 0 operátor AND je bitový 

Takže vidíte, rozdiel je len vo forme. 

Ešte posledná drobnosť pred koncom. Ak máme viacero bitovú reprezentáciu, napríklad: 

0011 AND 1101 = 0001

Sled porovnávania je prvý s prvým, druhý s druhým, tretí s tretím a atď…

Tento článok bol ako vidíte, viacmenej teoretický. Dúfam, že nováčikom pomohol sa troška zorientovať, o čo ide a uviedli sme si i jeden praktický príklad, ASCII tabuľku, kde sa takéto veci používajú. Nabudúce bude posledná praktickejšia časť z cyklu Operátory a potom pôjdeme ďalej. Čaká nás ešte dosť práce, tak ostaňte naladený.

(Jako ve škole) Průměr: 1.00 | Hodnotilo: 3
 

Přidat názor

 

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu.

 
Eduard Boldižár

Eduard Boldižár

Som redaktorom stránky astrotech.cz. Mám 24 rokov. Čas trávim v IT škole. Medzi moje záľuby patrí astronómia, sci-fi literatúra a programovanie.

 
 
 
woo jaw demo hz