Shell – komandinės eilutės aplinka – sąsaja su operacine
sistema, užtikrinanti vartotojo įvestų komandų
interpretavimą.
Aplinka turi savo scenarijų kalbos interpretatorių.
Dažniausiai yra naudojama bash (Bourne Again Shell)
aplinka.
Scenarijai (Script) sudaromi pagal tam tikras taisykles iš
atskirų komandų.
Aplinkos
sh (Bourne Shell)
bash (Bourne-again Shell)
csh (C Shell)
ksh (Korn Shell)
ash (Almquist Shell)
tcsh (TENEX C Shell)
zsh (Z Shell)
Aplinkos komandos
Aplinkos skiriasi scenarijų interpretavimo kalbomis.
Dauguma elementarių komandų sutampa.
Komandų pavadinimai paprastai sudaromi iš atitinkamą
veiksmą nusakančių žodžių, pvz., cp iš žodžio copy.
Aplinkos komandos
Į komandos eilutę įvesti žodžiai traktuojami tokiu būdu:
Pirmas žodis suprantamas kaip komanda,
Visa kita – komandos parametrai.
Aplinka atlieka keletą dalykų:
Patikrinama ar tai vidinė aplinkos komanda, t.y. ar aplinka
moka ją įvykdyti.
Jei ne, tikrinama, gal tai komandos pavadinimo pakaitalas;
Arba ieško programos nurodytu vardu ir perduoda eilutėje nurodytus
parametrus.
Teisės į failą
Vienas iš failo atributų.
Teisės gali būti:
Priklausomybės, nusakomos savininkui, grupei ar visiems
kitiems;
Veiksmų, leidžiančios skaityti, rašyti ir vykdyti.
Kiekvienas failas turi savininką;
Kiekvienas failas priklauso tam tikrai grupei;
Teisės į failą
Savininkas su savo failu gali daryti viską, tačiau jis negali
pakeisti failo savininko, tai gali padaryti tik
administratorius;
Vykdymo teisės į failą leidžia įvykdyti programą ar
scenarijų.
Vykdymo teisės į katalogą leidžia pažiūrėti jo turinį.
Norint ištrinti failą, reikia turėti rašymo teisę.
Teisės į failą
Teisės į failą užrašomos tokio tipo eilute:
-rwxr-xr-x
Pirmasis minuso ženklas reiškia, kad tai paprastas failas, o ne
katalogas (žymimas d raide);
Likę simboliai grupuojami po 3:
Pirmoji grupė nusako autoriaus teises,
Antroji – grupės teises,
Trečioji – visų kitų vartotojų teises.
Simbolių reikšmės:
r reiškia teisę skaityti,
w – rašyti,
x – vykdyti,
“-” ženklas atitinkamoje pozicijoje reiškia, kad tokia teisė nesuteikta
Teisės į failą
Teisės keičiamos tokia komanda:
chmod {+,-}{r,w,x} failai
+/- simboliai nusako ar teisę suteikti, ar atimti.
Pagalbinės komandos
cal [[mėnesis] metai] – konkretaus mėnesio ar
visų metu kalendorius
cal 9 2012
Pagalbinės komandos
date [+”datos_formatas”] – data ir laikas:
%m – mėnuo (01-12)
%d – mėnesio diena (1-31)
%Y – paskutiniai du metų skaitmenys
%H, %M, %S – valandos, minutės ir sekundės
%D – data (formatas mm/dd/yy)
date +”%Y-%m-%d, %H:%M:%S”
Pagalbinės komandos
echo “Labas, pasauli”
printf “Suma lygi %d\n”, 100
Pagalbinės komandos
bc – tekstinės sąsajos skaičiuoklio iškvietimas
darbo pabaiga nurodoma klavišų kombinacija Ctrl+D
Pagalbinės komandos
man [komandos_vardas] – informacija apie
komandas
Kintamųjų vardų apsirašymo taisyklės
Tarp kintamojo vardo ir reikšmės neturi būti tarpų:
no=10 – kintamojo apsirašymas
no =10 – neteisingas kintamojo deklaravimo pavyzdys
no= 10 – neteisingas kintamojo deklaravimo pavyzdys
no = 10 – neteisingas kintamojo deklaravimo pavyzdys
Kintamųjų varduose skiriamos didžiosios ir mažosios raidės:
no=10 – echo $no – išves 10
No=11 – echo $No – išves 11
NO=20 – echo $NO – išves 20
nO=21 – echo $nO – išves 21
Galima apsibrėžti kintamuosius, turinčius NULL reikšmę:
kint=
kint=“”
Įvykdžius komandą echo $kint – nieko nerodys, nes kintamasis
neturi reikšmės
Komanda echo
Naudojama teksto, kintamųjų reikšmių atvaizdavimui
ekrane:
echo [parinktys] [tekstas, kintamieji]
a=123
echo $a # išves 123
echo a # išves a, bet ne kintamojo reikšmę 123
Kaip apibrėžti kintamąjį x su reikšme 10 ir jo reikšmę
atspausdinti ekrane?
Kaip apibrėžti kintamąjį xn su reikšme Studentas ir jo
reikšmę atspausdinti ekrane?Komanda expr
Naudojama aritmetikos veiksmams atlikti:
expr a + b – dviejų skaičių sudėtis
expr a – b – dviejų skaičių skirtumas
expr a / b – dviejų skaičių dalyba
expr a % b – liekana a mod b
expr a \* b – dviejų skaičių daugyba
echo `expr a + b` - atspausdins aritmetinio veiksmo
rezultatą
echo “expr a + b” – atspausdins expr a + b
Kaip atspausdinti dviejų kintamųjų dalybos rezultatą?
Dalybos rezultatą pateikti kaip trečią kintamąjį.Nurodyti klaidas scenarijuje
Vardas=Petriukas
ManoOS=Linux
ManoNr=10
echo “Mano vardas yra $vardas”
echo “Mano OS yra $ManoOS”
echo “Mano numeris yra ManoNr. Ar
matote šį numerį?”
Komanda read
Naudojama duomenų įvedimui klaviatūra. Įvesti
duomenys priskiriami atitinkamam kintamajam:
read variable1, variable2, ...
Sukurti scenarijų, kuris prašys vartotojo įvesti vardą, kuris
bus saugomas kaip kintamasis vardas. Panaudoti šį
kintamąjį sakinyje, pvz., “Labas vardas, būkime
draugais”.Įvedimo/Išvedimo srauto nukreipimas
Dauguma komandų rezultatus išveda į ekraną, tačiau galima
išvedimo srautą nukreipti į failą ar įvesti duomenis iš failo.
Yra trys srautų nukreipimo simboliai:
>
komanda>failo_pavadinimas – jei duomenys tame faile jau buvo,
jie bus prarasti;
>>
komanda>>failo_pavadinimas – nauji duomenys prirašomi prie
failo pabaigos;
<
komanda<failo_pavadinimas – duomenys imami iš failo, vietoj to,
kad įvedinėti klaviatūra.
Pvz., komanda<failas1>failas2 – duomenys imami iš
failas1, rezultatai talpinami į failas2.Komandos cat ir tac
cat
cat failas1 – ekrane pateikiamas failo turinys
cat failas1>failas2 – failas1 turinys perduodamas
failas2
cat failas1 failas2>failas3 – sujungiamas dviejų
failų – failas1 ir failas2 turinys į vieną failą – failas3
cat>failas1 – užpildyti tuščią failą klaviatūra įvedamu
tekstu
cat>>failas1 – papildyti failą klaviatūra įvedamu tekstu
tac
panaši į komandą cat. Tik failų eilutės skaitomos nuo failo
pabaigos (pradedant paskutiniąja eilute).Pavyzdys
Failą w1.txt užpildykime tekstu, įvedami klaviatūra. Į failą
w2.txt perrašykime failo w1.txt turinį atvirkščia tvarka.
Failus w1.txt ir w2.txt sujunkime į vieną w3.txt.
cat>f1.txt # Užpildome tuščią failą klaviatūra įvedamu tekstu;
Pirmoji eilutė
Antroji eilutė
Trečioji eilutė
cat f1.txt # Peržiūrime ekrane failo f1.txt turinį
tac f1.txt>f2.txt # failo f1.txt turinys perduodamas
kitam failui f2.txt (tik atvirkščia tvarka)
cat f2.txt # Peržiūrime ekrane failo f2.txt turinį
cat f1.txt f2.txt>f3.txt #Sujungiami failų f1.txt ir
f2.txt turiniai į kitą failą f3.txt
cat f3.txt #Peržiūrime ekrane failo f3.txt turinįScenarijus
Parašykite scenarijų, kuris apskaičiuoja dviejų įvestų
skaičių sandaugą ir rezultatą įrašo į tekstinį failą.
Parašykite scenarijų, kuris apskaičiuoja dviejų įvestų
skaičių sandaugą, iš kurios paskui yra atimama 3. Abu
rezultatai pridedami prie faile esamo teksto, neištrynus jo.Komanda wc
Naudojama teksto eilučių, žodžių ir simbolių
skaičiavimui:
wc [parinktys] [failų_vardas]
-l – skaičiuoja tik eilutes
-w – skaičiuoja tik žodžius
-m – skaičiuoja tik simboliusPavyzdys
Peržiūrėti anksčiau sukurto ir užpildyto failo f1.txt, bei
visų failų f1.txt, f2.txt ir f3.txt statistiką
wc f1.txt # Į ekraną išveda failo f1.txt eilučių, žodžių
ir simbolių skaičių
wc f?.txt # Į ekraną išveda visų galimų f?.txt failų
eilučių, žodžių ir simbolių skaičiųKomanda grep
Leidžia ieškoti sutapimo su šablonu nurodytame failų
sąraše:
grep [parinktys] “šablonas” [failo_pavadinimas]
grep “ieškomas žodis” failo_pavadinimas -
nurodo eilutę, sutampančią su šablonu
grep –n “ieškomas žodis” failo_pavadinimas
– nurodo eilutės numerį ir pačią eilutę, sutampančią su šablonu
grep –v “ieškomas žodis” failo_pavadinimas
– nurodo eilutę (-es), kuriose nerasta sutapimo su šablonuKomandos head ir tail
head – parodo pirmas 10 failo eilučių.
tail – parodo paskutines 10 failo eilutes.
head failo_pavadinimas
tail failo_pavadinimas
head –n failo_pavadinimas – parodo pirmas n
failo eilučių
tail –n failo_pavadinimas – parodo paskutines
n failo eilučiųsort komanda
Komanda išdėsto failo įrašus abėcėlės arba skaitmenine
tvarka.
Pagal nutylėjimą rūšiavimas atliekamas didėjimo tvarka
-r – rūšiavimas priešinga tvarkapipe-priemonės
Komandos rezultatų perdavimas kitai komandai
komanda1|komanda2
Pavyzdys: cat stud|sort – komanda cat
neparodys failo stud turinio, o iš karto perduos jos
rezultatus rūšiavimo komandai sort, kuri surūšiuotus
įrašus išves į ekranąsed komanda
Teksto paieškos ir modifikavimo komanda
sed [parinktys] ‘komanda’ failas
Teksto modifikavimas:
sed [parinktys] ‘[opcijos]/ką
pakeisti/kuo pakeisti/[opcijos]’ failassed komanda
sed –e ‘s/Sveiki/Labas/’ failas1 – pakeis
pirmą žodį “Sveiki” į “Labas” faile failas1
sed –e ‘s/Sveiki/Labas/g’ failas1 –
pakeis visus žodžius “Sveiki” į “Labas” faile failas1
sed –e ‘3,5s/Sveiki/Labas/g’ failas1 –
nuo 3 iki 5 eilutėse pakeis visu žodžius “Sveiki” į “Labas”
faile failas1
sed 1,2d failas1 – ištrina failas1 pirmą ir antrą
eilutes
sed /^P/d failas1 – ištrina eilutes, kurios
prasideda raide P
3 praktinis užsiėmimas
Jelena Zubova Sąlygos operatoriai naudojamai, kai norima, jog
scenarijus priimtų sprendimus, t.y. vykdytų
komandas atsižvelgdamas į esamą situaciją. if galimos reikšmės:
◦ tiesa (true) – vykdomos
then šakoje esančios
komandos
◦ netiesa (false) –
vykdomos else šakoje
esančios komandos
Komandų kiekis bet
kurioje šakoje
neribotas.
Sintaksė:
if [ sąlyga ]
then
komanda_1
komanda_2
.........
else
komanda_x
komanda_y
.........
fi Jei sąlyga_1 reikšmė
tiesa, vykdomos then
šakos komandos.
Jei sąlyga_1 reikšmė
netiesa, tikrinama
sąlyga_2:
◦ jei reikšmė yra tiesa,
vykdomos vidinio if
operatoriaus then šakos
komandos
◦ jei reikšmė netiesa, vykdomos
else šakos komandos
Sintaksė:
if [ sąlyga_1 ]
then
komanda_1
komanda_2
.........
else if [ sąlyga_2 ]
then
komanda_x
komanda_y
.........
else
komanda_xx
komanda_yy
..........
fi
fi Naudojant elif
operatorių užtenka vieno
fi pagrindinio
operatoriaus užbaigimui.
Sintaksė:
if [ sąlyga_1 ]
then
komanda_1
komanda_2
.........
elif [ sąlyga_2 ]
then
komanda_x
komanda_y
.........
else
komanda_xx
komanda_yy
..........
fi [ sąlyga_1 –o sąlyga_2 ] – loginė sudėtis,
“arba” jungtis:
◦ operatoriaus reikšmė bus tiesa, jei bent viena iš sąlygų yra
tiesa,
◦ netiesa – priešingu atveju.
[ sąlyga_1 –a sąlyga_2 ] – loginė
daugyba, “ir” jungtis:
◦ operatoriaus reikšmė bus tiesa, jei visų sąlygų reikšmės bus
tiesa,
◦ netiesa – priešingu atveju. Skaičių palyginimas:
◦ $a –eq $b – tiesa, jei abu skaičiai (a ir b) lygūs
◦ $a –ne $b – tiesa, jei skaičiai (a ir b) nelygūs
◦ $a –gt $b – tiesa, jei skaičius a didesnis už skaičių b
◦ $a –ge $b – tiesa, jei skaičius a didesnis arba lygus
skaičiui b
◦ $a –lt $b – tiesa, jei skaičius a mažesnis už skaičių b
◦ $a –le $b – tiesa, jei skaičius a mažesnis arba lygus
skaičiui b Eilučių palyginimas
◦ $eil1 == $eil2 – tiesa jei abi eilutės (eil1 ir eil2)
yra vienodos
◦ $eil1 != $eil2 – tiesa, jei eilutės (eil1 ir eil2) yra
nevienodos
◦ -n $eil – tiesa, jei eilutė (eil) yra netuščia
◦ -z $eil – tiesa, jei eilutė (eil) yra tuščia Parašykite scenarijų, kuris patikrintų, ar du klaviatūra
įvedami skaičiai yra lygūs. Jei taip, į ekraną turi būti
išvestas pranešimas “Įvesti skaičiai lygūs”. Priešingu
atveju – “Įvesti skaičiai yra nelygūs”.
Parašykite scenarijų, kuris patikrintų, ar dviejų
klaviatūra įvedamų skaičių sandauga lygi 0. Jei taip, į
ekraną turi būti išvestas pranešimas “Bent vienas iš
įvestų skaičių lygus 0”. Priešingu atveju turi būti
apskaičiuota tų dviejų skaičių sandauga ir išvestas
pranešimas “Įvestų skaičių sandauga lygi X”. Parašykite scenarijų, kuris patikrintų, ar pirmas
įvestas skaičius yra didesnis už antrą. Jei taip, raskite
dviejų įvestų skaičių skirtumą. Priešingu atveju
patikrinkite, ar pirmas skaičius mažesnis už antrą.
Jei taip, raskite tų skaičių sumą. Priešingu atveju į
ekraną turi būti išvestas pranešimas “Du įvesti
skaičiai a ir b yra lygūs”. -s $f – tiesa, jei failas f yra netuščias
-f $f – tiesa, jei failas f yra egzistuojantis paprastas failas
-d $f – tiesa, jei failas f yra egzistuojantis katalogas
-e $f – tiesa, jei failas f yra egzistuojantis failas
-r $f – tiesa, jei failas f yra egzistuojantis failas ir
vartotojas turi teisę jį skaityti
-w $f – tiesa, jei failas f yra egzistuojantis failas ir
vartotojas turi leidimą jį redaguoti
-x $f – tiesa, jei failas f yra egzistuojantis failas ir
vartotojas turi leidimą jį vykdyti
$f -ot $g – tiesa, jei failas g yra naudotas vėliau nei failas
f
$f -nt $g – tiesa, jei failas f yra naudotas vėliau nei failas
g Sukurkite scenarijų, kuris patikrina ar egzistuoja
failas su vartotojo įvestu failo pavadinimu. Jei taip, į
ekraną išvedamas šio tekstinio failo eilučių kiekis.
Priešingu atveju išvedamas pranešimas “Failas f
neegzistuoja”. Naudojamas, kai
kintamojo reikšmių
diapazonas yra
diskretus ir yra ne
platus.
Tokiais atvejais patogiau
naudoti case vietoje if
operatoriaus.
case $kintamasis in
reikšmė_1)
komanda_1
komanda_2
…………………;;
reikšmė_2)
komanda_x
komanda_y
…………………;;
esac Sukurkime scenarijų su meniu, kuris patikrintų ar
failas egzistuoja, ar direktorija egzistuoja, ar
vartotojas turi teisę failą redaguoti.echo “1 – tikrina ar failas
egzistuoja”
echo “2 – tikrina ar direktorija
egzistuoja”
echo “3 – tikrina ar failas gali būti
redaguojamas”
echo “Įveskite 1, 2 arba 3 norėdami
atlikti tam tikrą veiksmą”read p
case $p in
1)
echo “Įveskite failo pavadinimą”
read f
if [ -f $f ]
then
echo “Failas $f egzistuoja”
else
echo “Failas $f neegzistuoja”
fi;;2)
echo “Įveskite katalogo pavadinimą”
read f
if [ -d $f ]
then
echo “Katalogas $f egzistuoja”
else
echo “Katalogas $f neegzistuoja”
fi;;3)
echo “Įveskite failo pavadinimą”
read f
if [ -w $f ]
then
echo “Teisė redaguoti $f failą yra”
elif [ -f $f ]
then
echo “Failas $f neegzistuoja”
else
echo “Teisės redaguoti $f failą
nėra”
fi;;*)
echo “Tokio meniu punkto nėra”
esac
Šiame pavyzdyje panaudota speciali reikšmė “*”,
kuri reiškia visus kitus atvejus.echo “1 – tikrina ar failas egzistuoja”
echo “2 – tikrina ar direktorija
egzistuoja’
echo “3 – tikrina ar failas egzistuoja”
echo “Įveskite 1, 2 arba 3 norėdami
atlikti tam tikrą veiksmą’
read p
case $p in
1)
echo “Įveskite failo pavadinimą”
read f
if [ -f $f ]
then
echo “Failas $f egzistuoja”
else
echo “Failas $f neegzistuoja”
fi;;
2)
echo “Įveskite katalogo pavadinimą”
read f
if [ -d $f ]
then
echo “Katalogas $f egzistuoja”
else
echo “Katalogas $f
neegzistuoja”
fi;;
3)
echo “Įveskite failo pavadinimą”
read f
if [ -w $f ]
then
echo “Teisė redaguoti $f failą
yra”
elif [ -f $f ]
then
echo “Failas $f
neegzistuoja”
else
echo “Teisės redaguoti
$f failą nėra”
fi;;
*)
echo “Tokio meniu punkto nėra”;;
esac Sukurkite scenarijų su meniu, kuris, priklausomai nuo
pasirinkto meniu punkto, apskaičiuotų dviejų įvestų
skaičių:
1) sumą (jeigu įvesti skaičiai nelygūs, priešingu atveju
išvedamas pranešimas “Įvesti skaičiai lygūs”)
2) sandaugą (jeigu abu skaičiai nelygūs 0, priešingu
atveju išvedamas pranešimas “Abu skaičiai lygūs 0”)
3) skirtumą (jeigu įvesti skaičiai nelygūs, priešingu
atveju išvedamas pranešimas “Įvesti skaičiai a ir b
lygūs”) Kai tenka vykdyti tas pačias komandas keletą kartų,
patogiau naudoti ciklus. Dažniausiai yra naudojami
dviejų tipų ciklai:
◦ for
◦ while Naudojant ciklus būtina:
◦ inicializuoti kintamąjį (priskirti pradinę reikšmę)
◦ nurodyti ciklo vykdymo sąlygą
◦ apibrėžti ciklo kintamojo reikšmės kitimo dėsnį a) forma
for kintamasis in sąrašas
do
komanda_x
komanda_y
done
Ciklo kintamojo pradinė reikšmė yra pirmasis
elementas sąraše. Ciklas vykdomas tol, kol
nepasiekiama sąrašo pabaiga. Kiekvienoje iteracijoje
ciklo kintamojo reikšme taps kitas sąrašo elementas.for i in 1 2 3 4 5 6 7 8 9 10
do
echo $i
done
Šiuo konkrečiu atveju į ekraną bus išvedami skaičiai nuo 1
iki 10. b) forma
for ((inicializavimas; sąlyga; kitimo
dėsnis))
do
komanda_x
komanda_y
done
Ciklo kintamojo inicializavimas atliekamas priskiriant
pradinę reikšmę. Toliau nurodoma kokią reikšmę pasiekus
ciklas yra nutraukiamas. Būtina nurodyti ciklo kintamojo
kitimo dėsnį, priešingu atveju gausime begalinį ciklą.for ((i=1; i<=10; i++))
do
echo $i
done
Šiuo konkrečiu atveju į ekraną bus išvedami skaičiai
nuo 1 iki 10. Ciklo cikle pavyzdys:
for ((i=1; i<=5; i++))
do
for ((j=1; j<=5; j++))
do
echo –n $i
done
echo “”
done
Komanda echo –n spausdina rezultatus toje pačioje
eilutėje.
Vieno išorinio ciklo iteracijoje spausdinamos 5 vidinio ciklo
iteracijos.while [ sąlyga ]
do
komanda_x
komanda_y
.........
done
Kadangi ciklas while
neturi tokios
antraštės, kaip for
ciklas, todėl pradinę
ciklo kintamojo
reikšmę bei kitimo
dėsnį reikia apibrėžti,
atitinkamai, prieš ciklą
ir pačiame cikle.i=1
while [ $i –le 10 ]
do
echo $i
i=`expr $i + 1`
done Vartotojas įveda dviejų failų pavadinimus. Sukurkite
scenarijų, kuris nustatytų, kuris failas turi daugiau
eilučių. Į ekraną turi būti išvedami atitinkami
pranešimai:
◦ „Failas a turi daugiau eilučių“
◦ „Failas b turi daugiau eilučių“
◦ Arba „Failai a ir b turi vienodą eilučių skaičių“
2013 m. rugsėjo 23 d., pirmadienis
2013 m. liepos 11 d., ketvirtadienis
3.2. Logikos algebros tapatybės
3.2. LOGIKOS ALGEBROS TAPATYBĖS
Logikos algebroje, kaip ir matematikoje, ryšiai tarp kintamųjų nusakomi aksiomomis teoremomis ir tapatybėmis.
Logikos algebros tapatybės pateiktos poromis - dviem stulpeliais.Pagal logikos algebros dualumo dėsnį kairiojo stulpelio tapatybes galime gauti iš dešinio ir priešingai. Šis dėsnis teigia: tapatybės loginę sandaugą pakeitus logine suma, o sumą sandauga; nulį vienetu, o vienetą nuliu ir skliaustais išlaikius tą pačią veiksmų tvarką, bus gauta nauja tapatybė, vadinama dualia:
Logikos algebros tapatybės pateiktos poromis - dviem stulpeliais.Pagal logikos algebros dualumo dėsnį kairiojo stulpelio tapatybes galime gauti iš dešinio ir priešingai. Šis dėsnis teigia: tapatybės loginę sandaugą pakeitus logine suma, o sumą sandauga; nulį vienetu, o vienetą nuliu ir skliaustais išlaikius tą pačią veiksmų tvarką, bus gauta nauja tapatybė, vadinama dualia:
Pagal 5 tapatybę:prie loginės sumos galime pridėti bet kiek tokių pat kintamųjų arba kelių vienodų kintamųjų sumą pakeisti vienu tokiu pat kintamuoju.
Pagal 6 tapatybę: loginę sandaugą galime dauginti iš bet kiek jau esančių kintamųjų arba kelis vienodus kintamuosius pakeisti vienu.
Pagal 6 tapatybę: loginę sandaugą galime dauginti iš bet kiek jau esančių kintamųjų arba kelis vienodus kintamuosius pakeisti vienu.
Pagal de Morgano teoremą:
- kintamųjų sumos inversija lygi kintamųjų inversijų sandaugai.
- kintamųjų sandaugos inversija lygi kintamųjų inversijų sumai.
3.1. Loginės funkcijos
3. LOGIKOS ALGEBRA
Skaitmeniniai grandynai projektuojami naudojantis loginės algebros teorija, kuri dar vadinama Bulio algebra – ją sukūrusio anglų mokslininko (J.Boole) vardu.
3.1 LOGINĖS FUNKCIJOS
Pagrindinė loginės algebros sąvoka – loginė funkcija. Tai tokia funkcija, kuri pati arba jos argumentai gali būti tik dviejų reikšmių – teisinga arba neteisinga. Tai esminis skirtumas nuo įprastų matematinių funkcijų. Loginės funkcijos ir jos kintamųjų reikšmes žymėsime simboliais 1 ir 0. Šie simboliai naudojami ir dvejetainėje skaičiavimo sistemoje.
Funkcijos argumentus vadiname loginiais kintamaisiais. Jei funkcija turi n loginių kintamųjų, tai iš jų galime sudaryti 2n kintamųjų rinkinių. Iš dviejų kintamųjų galime sudaryti keturis rinkinius - 00, 01, 10, 11; iš keturių - šešiolika ir t.t.
Loginę funkciją galime pateikti keliais būdais:
· nusakyti žodžiais t.y. aprašyti;Funkcijos argumentus vadiname loginiais kintamaisiais. Jei funkcija turi n loginių kintamųjų, tai iš jų galime sudaryti 2n kintamųjų rinkinių. Iš dviejų kintamųjų galime sudaryti keturis rinkinius - 00, 01, 10, 11; iš keturių - šešiolika ir t.t.
Loginę funkciją galime pateikti keliais būdais:
· užrašyti jos algebrinę išraišką;
· pavaizduoti grafikų t.y. laiko diagramų pavidalu;
· pavaizduoti teisingumo lentele.
Algebrinei išraiškai galime naudoti įvairius simbolius. Dažniausiai sutinkami žymėjimai:
F= φ (A,B,C,… ); F= φ (X,Y,Z,… ) ; Y= φ (x1x2x3…) ir kt.
F= φ (A,B,C,… ); F= φ (X,Y,Z,… ) ; Y= φ (x1x2x3…) ir kt.
Teisingumo arba reikšmių lentelėje surašomi visi įmanomi kintamųjų rinkiniai ir juos atitinkančios funkcijos reikšmės.
Loginė funkcija nurodo kokią loginę operaciją norime atlikti. Skaitmeninėje technikoje logines operacijas atlieka loginiai elementai (angl. gates).
Loginių funkcijų teorijoje svarbią reikšmę turi 1 ir 2 kintamųjų funkcijos ,nes jų pagrindu sudaromos loginės funkcijos turinčios ir daugiau kintamųjų
Toliau aprašysime pagrindines 1ir 2 kintamųjų funkcijas.
Loginė funkcija nurodo kokią loginę operaciją norime atlikti. Skaitmeninėje technikoje logines operacijas atlieka loginiai elementai (angl. gates).
Loginių funkcijų teorijoje svarbią reikšmę turi 1 ir 2 kintamųjų funkcijos ,nes jų pagrindu sudaromos loginės funkcijos turinčios ir daugiau kintamųjų
Toliau aprašysime pagrindines 1ir 2 kintamųjų funkcijas.
KARTOJIMAS - tai vieno kintamojo funkcija.. Funkcijos reikšmė visuomet lygi kintamojo reikšmei: F = X
NE - loginis neigimas, inversija - tai vieno kintamojo funkcija. Loginis elementas vadinamas inverteriu. Funkcijos reikšmė priešinga kintamojo reikšmei, žymima „¯ “ t.y. brūkšniu virš kintamojo:
Kitos nagrinėjamos funkcijos, tai dviejų kintamųjų funkcijos, tačiau išraiškos gali būti taikomos trims ir daugiau kintamųjų.
IR – loginė daugyba, konjunkcija. Funkcijos reikšmė lygi 1 tik tuomet , jei visi kintamieji lygūs 1. Loginė operacija žymima simboliais: „&“, „∧“, „•“, paskutinis simbolis dažniausiai nerašomas:
F = X ∧Y = X • Y = X & Y
Loginės operacijos IR rezultatus galime užrašyti:0 • 0 = 0
0 • 1 = 0
1 • 0 = 0
1 • 1 = 1
Skaitome ne vienas dauginti iš vieno, bet vienas ir vienas, turime prisiminti, kad atliekame loginę operaciją.
ARBA - loginė sudėtis ,disjunkcija. Funkcijos reikšmė 1, jei bent vieno kintamojo reikšmė lygi 1. Loginė operacija žymima simboliais: „ + “, „∨ “:
F = X + Y = X ∨ Y
Loginės operacijos ARBA rezultatus galime užrašyti:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 1
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 1
Skaitome ne vienas plius vienas, bet vienas arba vienas, visuomet turime prisiminti, kad atliekame loginę operaciją.
XOR - šiai funkcijai naudojamas angliškas sutrumpinimas, nes nėra lietuviško. Lietuviškai ši funkcija vadinama: suma moduliu 2 arba loginis nelygiavertiškumas.Tai dviejų kintamųjų loginė funkcija, jos reikšmė lygi 1, jei tik vienas kintamasis lygus 1. Loginė operacija žymima simboliu ⊕.
XOR - šiai funkcijai naudojamas angliškas sutrumpinimas, nes nėra lietuviško. Lietuviškai ši funkcija vadinama: suma moduliu 2 arba loginis nelygiavertiškumas.Tai dviejų kintamųjų loginė funkcija, jos reikšmė lygi 1, jei tik vienas kintamasis lygus 1. Loginė operacija žymima simboliu ⊕.
Loginės operacijos XOR rezultatus galime užrašyti:
0 ⊕ 0 = 0
0 ⊕ 1 = 1
1 ⊕ 0 = 1
1 ⊕ 1 = 0
0 ⊕ 0 = 0
0 ⊕ 1 = 1
1 ⊕ 0 = 1
1 ⊕ 1 = 0
IR-NE, ARBA-NE, XNOR yra jau minėtų funkcijų neigimas, inversija.
Funkcijos, į kurių išraišką įeina ne daugiau kaip viena loginė operacija, vadinamos elementariomis. Tai funkcijos IR, ARBA, NE.
Užrašant funkciją algebrinėmis išraiškomis, jos kintamieji susiejami loginių operacijų ženklais, kurie nurodo kokią loginę operaciją ir kokia tvarka reikia atlikti. Pirmiausia atliekama loginė operacija NE, sekanti – IR, po to – ARBA.
Funkcijos, į kurių išraišką įeina ne daugiau kaip viena loginė operacija, vadinamos elementariomis. Tai funkcijos IR, ARBA, NE.
Užrašant funkciją algebrinėmis išraiškomis, jos kintamieji susiejami loginių operacijų ženklais, kurie nurodo kokią loginę operaciją ir kokia tvarka reikia atlikti. Pirmiausia atliekama loginė operacija NE, sekanti – IR, po to – ARBA.
Pagrindinės vieno ir dviejų kintamųjų funkcijos parodytos lentelėje 3–1. Lentelėje taip pat parodytos teisingumo lentelės ir loginių elementų grafinio žymėjimo du variantai. Funkcijų sutrumpinti žymėjimai pateikti lietuvių, anglų ir rusų kalbomis.
Literatūroje ir kompiuterinėse programose yra naudojami abu loginių elementų žymėjimo variantai, todėl loginių schemų piešimui pakaitomis abu juos ir naudosime.
Literatūroje ir kompiuterinėse programose yra naudojami abu loginių elementų žymėjimo variantai, todėl loginių schemų piešimui pakaitomis abu juos ir naudosime.
Lentelė 3-1
2.6. ASCII kodas
2.5. ASCII KODAS
Kompiuteriuose ir kituose skaitmeniniuose įtaisuose koduojami ne tik skaičiai, bet ir raidės, ir kiti simboliai. Dažniausiai naudojamas ASCII (American Standart Code for Information Interchange – Amerikos kodavimo standartas skirtas informacijos pasikeitimui) parodytas 2.6 lentelėje. Šis standartas 1963 metais priimtas JAV, o dabar naudojamas kaip tarptautinis standartas. Tai septynių bitų kodas.Kodavimui ASCII kodais naudojama lentelė sudaryta iš 128 langelių, kurie suskirstyti į 16 eilučių ir 8 stulpelius. Eilutės sunumeruotos šešioliktainiais skaičiais nuo 0 iki F ir dvejetainiais skaičiais nuo 0000 iki 1111, kurie pažymėti B4B3B2B1. Stulpeliai sunumeruoti šešioliktainiais skaičiais nuo 0 iki 7 ir dvejetainiais skaičiais nuo 000 iki 111, kurie pažymėti B7B6B5. Dvejetainiai skaičiai naudojami ASCII kodų sudarymui, o šešioliktainiai naudojami norint sutrumpinti kodų užrašus, pav.ekrane.
Lentelė užpildyta dešimtainiais skaičiais, raidėmis, simboliais ir specialių komandų sutrumpinimais. Komandos skirtos informacijos pasikeitimo tarp kompiuterio ir įvedimo – išvedimo įtaisų operacijoms valdyti ir užima 32 langelius. Šias komandas, o tiksliau jų kodus dažniausiai formuoja procesorius ar kitas valdymo įtaisas.
Likę langeliai tai skaičiai raidės ir simboliai, kuriuos matome užrašytus ant kompiuterio klaviatūros klavišų. Nuspaudus klavišą formuojamas jį atitinkantis kodas. Užrašas SP – atitinka klavišą “Space”, o DEL – klavišą “Delete”.
2.6. lentelė
Eilutės kodas |
Stulpelio kodas
| ||||||||
B7B6B5 / HEX
| |||||||||
000
|
001
|
010
|
011
|
100
|
101
|
110
|
111
| ||
B4B3B2B1
|
HEX
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
0000
|
0
|
NUL
|
DLE
|
SP
|
0
|
@
|
P
|
`
|
p
|
0001
|
1
|
SOH
|
DC1
|
!
|
1
|
A
|
Q
|
a
|
q
|
0010
|
2
|
STX
|
DC2
|
“
|
2
|
B
|
R
|
b
|
r
|
0011
|
3
|
ETX
|
DC3
|
#
|
3
|
C
|
S
|
c
|
s
|
0100
|
4
|
EOT
|
DC4
|
$
|
4
|
D
|
T
|
d
|
t
|
0101
|
5
|
ENQ
|
NAK
|
%
|
5
|
E
|
U
|
e
|
u
|
0110
|
6
|
ACK
|
SYK
|
&
|
6
|
F
|
V
|
f
|
v
|
0111
|
7
|
BEL
|
ETB
|
´
|
7
|
G
|
W
|
g
|
w
|
1000
|
8
|
BS
|
CAN
|
(
|
8
|
H
|
X
|
h
|
x
|
1001
|
9
|
HT
|
EM
|
)
|
9
|
I
|
Y
|
i
|
y
|
1010
|
A
|
LF
|
SUB
|
*
|
:
|
J
|
Z
|
j
|
z
|
1011
|
B
|
VT
|
ESC
|
+
|
;
|
K
|
[
|
k
|
{
|
1100
|
C
|
FF
|
FS
|
,
|
<
|
L
|
\
|
l
|
|
|
1101
|
D
|
CR
|
GS
|
-
|
=
|
M
|
]
|
m
|
}
|
1110
|
E
|
SO
|
RS
|
.
|
>
|
N
|
^
|
n
|
~
|
1111
|
F
|
SI
|
US
|
/
|
?
|
O
|
_
|
o
|
DEL
|
Langelio kodas tai jį atitinkančios eilutės ir stulpelio numerių užrašas dvejetainiais skaičiais:
B7B6B5B4B3B2B1,
B7B6B5B4B3B2B1,
kur
B4B3B2B1 – eilutės numeris;
B7B6B5 - stulpelio numeris.
B4B3B2B1 – eilutės numeris;
B7B6B5 - stulpelio numeris.
Lentelėje 2.6. tamsia spalva pažymėti 3 langeliai – SP, 3 ir K. Užrašysime jų kodus:
Langelis
|
Dvejetainis kodas
|
Šešioliktainis kodas
|
SP
|
0 0 1 0 0 0 0 0
|
20
|
3
|
0 0 1 1 0 0 1 1
|
33
|
K
|
0 1 0 0 1 0 1 1
|
4B
|
ASCII kodas yra 7 bitų kodas. Kompiuteriuose informacija užrašoma 8, 16, ir t.t. bitais.Todėl ASCII kodai papildomi dar vienu bitu B8, kuris pažymimas 0. Šis bitas panaudojamas papildomos informacijos kodavimui: grafiniams simboliams, įvedant kitas kalbas, šriftus ir t.t. Tokios informacijos kodavimui sudarytos specialios lentelės, kurias galima rasti literatūroje apie kompiuterius.
ASCII kodas tai ne vienintelis kodas skirtas skaičių, raidžių ir simbolių kodavimui. Daugelyje šalių naudojami ir kiti standartai, tačiau ASCII yra naudojamas dažniausiai.
ASCII kodas tai ne vienintelis kodas skirtas skaičių, raidžių ir simbolių kodavimui. Daugelyje šalių naudojami ir kiti standartai, tačiau ASCII yra naudojamas dažniausiai.
2.5. Dešimtainių skaičių kodavimas dvejetainiais - dešimtainiais kodais
2.5. DEŠIMTAINIŲ SKAIČIŲ KODAVIMAS DVEJETAINIAIS – DEŠIMTAINIAIS KODAIS
Jau žinome kaip dešimtainiai skaičiai užrašomi pozicinėse skaičiavimo sistemose. Informacijos vaizdavimui, saugojimui ir apdorojimui kompiuteriuose naudojama dvejetainė skaičiavimo sistema.Dažnai informaciją patogiau apdoroti ir analizuoti, jei ji vaizduojama specialiais kodais, kurie vadinami dvejetainiais – dešimtainiais kodais. Šie kodai sudaromi naudojant du simbolius – 1 ir 0, kaip ir dvejetainėje skaičiavimo sistemoje.
Skaitmeniniuose įtaisuose naudojami 4 bitų ilgio dvejetainiai – dešimtainiai kodai, kuriuose kiekvienas dešimtainio skaičiaus skaitmuo yra užrašomas keturiais dvejetainiais simboliais t.y. tetrada. Lentelėje 2.5 pavaizduoti 3 dvejetainiai - dešimtainiai kodai. Skaitmeniniuose įtaisuose naudojama ir daugiau dvejetainių – dešimtainių kodų.
Dažniausiai naudojamas BCD kodas, jo skilčių vertės – 8 4 2 1. BCD – tai angliškas kodo sutrumpinimas - Binary Coded Decimal, verčiama – dvejetainiais koduoti dešimtainiai.
Naudojama daug skaitmeninių grandinių, kurios gali apdoroti informaciją BCD kode – tai dešifratoriai, skaitikliai ir kiti įtaisai.
Lentelė 2. 5.
Dešimtainiai
skaitmenys |
Kodai ir jų skilčių vertės
| ||
B C D
8 4 2 1 |
2 4 2 1
|
Excess-3
8 4 2 1 + 3 | |
0
1 2 3 4 5 6 7 8 9 |
0 0 0 0
0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 |
0 0 0 0
0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 |
0 0 1 1
0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 1 1 0 0 |
Nenaudoja-
mos kombi- nacijos |
1 0 1 0
1 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 |
0 1 0 1
0 1 1 0 0 1 1 1 1 0 0 0 1 0 0 1 1 0 1 0 |
0 0 0 0
0 0 0 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 |
Užrašant skaičius dvejetainiais – dešimtainiais kodais tarp tetradų paliekamas tarpas. Dešimtainį skaičių 1936 užrašysime skirtingais kodais, kodo pavadinimą atitinka indeksas prie raidės A:
A10 =
|
1
|
9
|
3
|
6
|
ABCD =
|
0 0 0 1
|
1 0 0 1
|
0 0 1 1
|
0 1 1 0
|
A2421 =
|
0 0 0 1
|
1 1 1 1
|
0 0 1 1
|
1 1 0 0
|
A8421+3 =
|
0 1 0 0
|
1 1 0 0
|
0 1 1 0
|
1 0 0 1
|
A2 =
|
0 1 1 1
|
1 0 0 1
|
0 0 0 0
|
Paskutinėje eilutėje ,palyginimui, užrašytas dvejetainis skaičius.
BCD kodas yra 4 bitų kodas. Kartais naudojamas 8 bitų BCD kodas – jis vadinamas išplėstu BCD kodu. Šiam kodui naudojamas angliškas sutrumpinimas EBCD – Extended BCD.
BCD kodas yra 4 bitų kodas. Kartais naudojamas 8 bitų BCD kodas – jis vadinamas išplėstu BCD kodu. Šiam kodui naudojamas angliškas sutrumpinimas EBCD – Extended BCD.
2.4. Aritmetiniai veiksmai
2.4. ARITMETINIAI VEIKSMAI
Mokame sudėti, atimti, dauginti ir dalinti dešimtainius skaičius. Kitose skaičiavimo sistemose šias operacijas atliekame panašiai kaip ir dešimtainėje. Daugiausiai dėmesio skirsime dvejetainei sistemai.
2.4.1 Paprasčiausios aritmetinės operacijos.
Dvejetainėje sistemoje sudėtį atliekame pagal sudėties lentelę:
|
0+0= 0,
0+1= 1, 1+0= 1, 1+1=10, vienas pernešamas į vyresnę skiltį. |
Pavyzdys:
|
1 1 0 1 1 0 1
+ 1 0 0 1 1 1 1 | |
0 1 0 0 0 1 0
+ 1. 1 1 1 | suma neįvertinus pernašos | |
1 0 1 1 1 1 0 0
| galutinė suma |
Sudėtį galima atlikti nenurodant pernašų, o iš karto užrašant galutinę sumą.
Šešioliktainių skaičių sudėties pavyzdys:
Veiksmai su šešioliktainiais
| Atitinkami veiksmai su dešimtainiais | |||||
1 | ||||||
5 9 F H
| 5 | 9 | 15 | |||
+ E 4 6 H
| +14 | + 4 | + 6 | |||
1 3 E 5 H
| 19 = 16 + 3 | 14 | 21 = 16 + 5 |
Dešinėje pusėje paaiškinta kaip atliekama sudėtis. Jauniausioje skiltyje skaitmenį F (F = 15) sudėję su 6 gavome 21,kurį užrašėme suma 16 su 5. 16 pernešame į sekančią skiltį kaip 1. Taip pat atliekame sudėtį ir kitose skiltyse.
Dvejetainių skaičių atimties pavyzdys: |
1 0 1 1 0
|
- 1 0 0 1 1
| |
0 0 0 1 1
|
Atimdami iš nulio vienetą, skolinamės iš vyresnės skilties.
Atimties operacija, skolinantis 1 iš vyresnės skilties, skaičiavimo technikoje netaikoma. Ši operacija keičiama sudėtimi, kur skaičiai užrašomi specialiais kodais.
Visos aritmetinės operacijos kompiuteriuose ir kituose skaitmeniniuose įtaisuose atliekamos su dvejetainiais skaičiais. Sudėtis – svarbiausias veiksmas, nes visi kiti trys aritmetiniai veiksmai (atimtis, daugyba, dalyba) kompiuteriuose verčiami sudėtimi.
Dauginant, dauginamas skaičius sudedamas tiek kartų, iš kiek reikia dauginti. Dalijant atliekama daugkartinė atimtis.
Dauginant iš dviejų, vietoje sudėties galime atlikti skaičiaus perstūmimą per vieną skiltį į kairę, t.y. skaičiaus dešinėje prirašyti 0:
Atimties operacija, skolinantis 1 iš vyresnės skilties, skaičiavimo technikoje netaikoma. Ši operacija keičiama sudėtimi, kur skaičiai užrašomi specialiais kodais.
Visos aritmetinės operacijos kompiuteriuose ir kituose skaitmeniniuose įtaisuose atliekamos su dvejetainiais skaičiais. Sudėtis – svarbiausias veiksmas, nes visi kiti trys aritmetiniai veiksmai (atimtis, daugyba, dalyba) kompiuteriuose verčiami sudėtimi.
Dauginant, dauginamas skaičius sudedamas tiek kartų, iš kiek reikia dauginti. Dalijant atliekama daugkartinė atimtis.
Dauginant iš dviejų, vietoje sudėties galime atlikti skaičiaus perstūmimą per vieną skiltį į kairę, t.y. skaičiaus dešinėje prirašyti 0:
Dvejetainis |
Dešimtainis
|
1 0 1
|
5
|
1 0 1 0
|
10
|
1 0 1 0 0
|
20
|
1 0 1 0 0 0
|
40
|
1 0 1 0 0 0 0
|
80
|
2.4.2 Skaičių papildymai
Skaičių papildymais vadinami skaičių specialūs kodai, kurie naudojami atimties operacijoms atlikti , o taip pat atlikti veiksmams su neigiamais skaičiais.
Skaičiavimo technikoje naudojami du skaičių papildymo variantai:
Skaičiavimo technikoje naudojami du skaičių papildymo variantai:
papildymas iki p-1 ;
papildymas iki p (p- skaičiavimo sistemos pagrindas).
papildymas iki p (p- skaičiavimo sistemos pagrindas).
Papildymas iki p-1
Papildymas randamas: pp-1 = (pn - 1) - N , kur: N – skaičius, n – skilčių skaičius.
Skaičius skliaustuose : dešimtainei sistemai - 9999999… ,
dvejetainei sistemai - 1111111… .
dvejetainei sistemai - 1111111… .
Dešimtainėje sistemoje: p-1 = 10 – 1 = 9. Todėl kodas vadinamas papildymu iki 9 ir užrašomas skaitmenimis papildančiais turimo skaičiaus skaitmenis iki 9.
Rasime skaičiaus 546700 papildymą iki 9:
Rasime skaičiaus 546700 papildymą iki 9:
999999
| |
- 546700
| skaičius |
453299
| papildymas iki 9 |
Dvejetainėje sistemoje : p-1 = 2 – 1 = 1. Todėl kodas vadinamas papildymu iki 1 ir užrašomas skaitmenimis papildančiais turimo skaičiaus skaitmenis iki1
Rasime skaičiaus 1 0 1 1 0 0 1 papildymą iki 1:
Rasime skaičiaus 1 0 1 1 0 0 1 papildymą iki 1:
1 1 1 1 1 1 1
| |
1 0 1 1 0 0 1
| skaičius |
0 1 0 0 1 1 0
| papildymas iki 1 |
Matome, kad papildymas iki 1, tai invertuotas skaičius. Dvejetainių skaičių papildymas iki 1 vadinamas atvirkštiniu kodu ir randamas skaičiuje visus 1 pakeičiant 0, o 0 pakeičiant 1 (invertuojant skaičių).
Papildymas iki p.
Papildymas randamas: pp-1 = pn - N , kur: N – skaičius, n – skilčių skaičius.
Skaičius pn dešimtainei ir dvejetainei sistemoms - 10000000… ,
Papildymas randamas: pp-1 = pn - N , kur: N – skaičius, n – skilčių skaičius.
Skaičius pn dešimtainei ir dvejetainei sistemoms - 10000000… ,
Dešimtainėje sistemoje: p = 10. Todėl ir šis kodas vadinamas papildymu iki 10 ir užrašomas skaitmenimis papildančiais turimo skaičiaus skaitmenis iki10.
Rasime skaičiaus 546700 papildymą iki 10:
Rasime skaičiaus 546700 papildymą iki 10:
1000000
| |
- 546700
| skaičius |
453300
| papildymas iki 10 |
Dvejetainėje sistemoje p = 2 Todėl ir šis kodas yra vadinamas papildymu iki 2 ir užrašomas skaitmenimis papildančiais turimo skaičiaus skaitmenis iki2, tai dvejetainėje sistemoje atitinka dvejetainį skaičių 10.
Rasime skaičiaus 1 0 1 1 0 0 1 papildymą iki 2 :
Rasime skaičiaus 1 0 1 1 0 0 1 papildymą iki 2 :
1 0 0 0 0 0 0 0
| |
- 1 0 1 1 0 0 1
| skaičius |
0 1 0 0 1 1 1
| papildymas iki 2 |
Dvejetainių skaičių papildymas iki 2 vadinamas papildomu kodu. Randamas užrašant skaičiaus atvirkštinį kodą ir pridedant prie jo 1:
1 0 1 1 0 0 1
| skaičius |
0 1 0 0 1 1 0
| atvirkštinis kodas |
+ 1
| |
0 1 0 0 1 1 1
| papildomas kodas |
2.4.3 Dvejetainių skaičių atimtis atvirkštiniame Ir papildomame koduose.
Išsami aritmetinių operacijų analizė nėra šios mokymo programos tikslas. Apsiribosime keliais atimties operacijų pavyzdžiais.
Atliksime atimties operaciją su dešimtainiais skaičiais: 22 – 13 = 9, dvejetainėje sistemoje.
Skaičius užrašysime jų dvejetainiais kodais, kurių prireiks atlikti atimties operacijoms:
Atliksime atimties operaciją su dešimtainiais skaičiais: 22 – 13 = 9, dvejetainėje sistemoje.
Skaičius užrašysime jų dvejetainiais kodais, kurių prireiks atlikti atimties operacijoms:
Dešimtainiai:
|
Dvejetainiai:
| |
22
|
1 0 1 1 0
| tiesioginis 22 kodas |
13
|
0 1 1 0 1
| tiesioginis 13 kodas |
1 0 0 1 0
| atvirkštinis 13 kodas | |
1 0 0 1 1
| papildomas 13 kodas | |
9
|
0 1 0 0 1
| tiesioginis 9 kodas |
Atimtis atvirkštiniame kode:
- atimamas skaičius užrašomas atvirkštiniame kode;
- atimtis keičiama sudėtimi;
- papildomoje skiltyje atsiradusį 1 pridedame prie jauniausios skilties:
1 0 1 1 0
| tiesioginis 22 kodas |
+ 1 0 0 1 0
| atvirkštinis 13 kodas |
1 0 1 0 0 0
| |
→ → 1
| |
0 1 0 0 1
| rezultatas 9 dešimtainis |
Atimtis papildomame kode:
- atimamas skaičius užrašomas papildomame kode;
- atimtis keičiama sudėtimi:
- į papildomoje skiltyje atsiradusį 1 nekreipiame dėmesio
1 0 1 1 0
| tiesioginis 22 kodas |
+ 1 0 0 1 1
| papildomas 13 kodas |
1 0 1 0 0 1
| |
0 1 0 0 1
| rezultatas 9 dešimtainis |
Atimties operacijos tampa sudėtingesnėmis, kai atimamas skaičius didesnis už skaičių ,iš kurio atimama.Šiuo atveju užrašomi ir skaičių ženklai, kurie taip pat sudedami.operacija atliekama ir rezultatai gaunami atvirkštiniame ar papildomame kode.Apie tai, jei įdomu, paskaitykite specialioje literatūroje.
Skaičiaus ženklo užrašymas. Skaičiaus ženklo užrašymui skiriama vyriausia skiltis.Teigiami dvejetainiai skaičiai žymimi 0, neigiami 1. Jeigu vaizduojamas skaičiaus ženklas, apie tai būtinai informuojama.
Aritmetinės operacijos supaprastėja, kai nurodomas skaičiaus ženklas. Neigiami skaičiai šiuo atveju užrašomi atvirkštiniame arba papildomame koduose. Tai neįeina į mokymo programą ir apie tai galime sužinoti specialioje literatūroje.
Skaičiaus ženklo užrašymas. Skaičiaus ženklo užrašymui skiriama vyriausia skiltis.Teigiami dvejetainiai skaičiai žymimi 0, neigiami 1. Jeigu vaizduojamas skaičiaus ženklas, apie tai būtinai informuojama.
Aritmetinės operacijos supaprastėja, kai nurodomas skaičiaus ženklas. Neigiami skaičiai šiuo atveju užrašomi atvirkštiniame arba papildomame koduose. Tai neįeina į mokymo programą ir apie tai galime sužinoti specialioje literatūroje.
Užsisakykite:
Pranešimai (Atom)
Populiarūs įrašai
Etiketės
- Mikroprocesorinės technikos pagrindai (73)
- II. Šiuolaikiniai procesoriai (34)
- Kokybės vadyba (25)
- Kompiuteriai ir jų sandara (19)
- 5. Šiuolaikiniai AMD ir kitų firmų procesoriai (13)
- 8. Pertraukčių posistemėspaskirtis ir funkcionavimo principai (11)
- Skaitmeniniai įtaisai (11)
- 15. Atminties apsauga ir virtuali atminties adresacija (10)
- Elektronikos įrenginiai ir instaliacija (10)
- Marketingas (10)
- 4. Šiuolaikiniai Intel procesoriai (9)
- Anglų (8)
- Referatai (7)
- 11. Konvejerinis duomenų išrinkimo ir apdorojimo principas (6)
- 3. Duomenų ir vaizdų apdorojimo efektyvumą didinančios technologijos (6)
- 4. Vienkristalio CISC architektūros bazinio procesoriaus įtaisai ir jų tarpusavio sąveika (6)
- Java (6)
- Loginiai valdikliai (6)
- 9. Tiesioginiai mainai (5)
- 1. RISC procesoriųarchitektūros skiriamieji bruožai (4)
- 10. Atminties segmentavimas (4)
- 12. X86 komandų sistemosbruožai (4)
- 14. Daugiaprogramis darboprincipas (4)
- 2. Superskaliarinis duomenųapdorojimo principas (4)
- 5.Komandų sistemos (4)
- Elektrotechnikos pagrindai (4)
- Elektrotechninės medžiagos (4)
- Rašiniai (4)
- SQL (4)
- 13. Slankaus kablelio (matematinis) procesorius (3)
- 7. Asemblerio pradmenys (3)
- Braižyba (2)
- Elektronikos pagrindai (2)
- Nuolatinės srovės mašinos (2)
- Sistemos ir tinklai (2)
- 16. Procesoriaus 80386 programinis modelis (1)
- 6. Baziniai adresavimo režimai (1)
- Bitcoin (1)
- Informatika (1)
- Kirchhofo dėsnis (1)
- Kriptosistemos (1)
- Mercurial (1)
- Present Continuous (1)
- Present Simple (1)
- Psichologija (1)
- Skriptinis programavimas (1)
- Telekomunikacijos (1)
- book (1)
- kondensatoriai (1)
- maven (1)
- standartizacija (1)
- xml (1)