You are on page 1of 40

ELEMENTET E INFORMATIKES

Leksion 2

Enida Sheme
www.sites.google.com/site/informatika2016eln
Çfarë do të mësojmë
• Veprimet aritmetike në sisteme të ndryshëm
• Numri i shifrave të nevojshme për
paraqitjen e një numri me bazë çfarëdo
• Paraqitja e numrave në makinat llogaritëse:
modul & shenjë, komplement me 2,
komplement me 1, me presje të lëvizshme
(floating point) sipas standartit IEEE-754 32
bit
• Veprimet midis numrave me shenjë
• Mbiderdhja
Veprimet aritmetike në sistemin binar

• Mbledhja
• Zbritja
• Prodhimi
• Pjestimi
Mbledhja
Analogji, baze 10: Sistemi me baze 2:
1479 (10)
+ 3787 (10)
5266 (10)

Nqs shuma e 2 shifrave e barazon ose kalon bazen =>


shumes i zbritet baza dhe shtohet 1 ne shifren ngjitur me
me shume peshe

SHEMBULL:
111010 (2) 1101 10.011
+ 11011 (2) + 10111 + 100.110
1010101 (2) 100100 111.001
Zbritja
0 0 1 1
-0 -1 -0 -1
0 1 1 0
(1 baze borxh)

Shembull dhjetor: Shembull binar:


345 (10)
-199 (10)
146 (10)

PROVA!!!
Prodhimi
Pjestimi

PROVA!!!
Shembuj ne sisteme me baza te tjera

3645 (8) 521 (7)


+ 442 (8) - 264 (7)
4307 (8) 224 (7)

113 (4)
x 23 (4)
1011
+232___
3331 (4)
Numri i shifrave të nevojshme
për paraqitjen e një numri

• Numri më i madh që mund të paraqitet


me n bit gjendet me anë të formulës:
• Nmax = 2n – 1 =>

• Numri i shifrave (n) që nevojiten për të


paraqitur një numër të dhënë X me bazë r
gjendet me formulën:
• n =[logr(X+1)]
Shembull
• Numri maksimal dhjetor që mund të
paraqitet në sistemin me bazë 2 me 3
shifra është 7 (111(2)) i cili me formulë
llogaritet si 23 – 1
• Sa bite (sistemi binar) nevojiten për të
paraqitur numrin 137(10) ?
• n = [log2(137+1)] = [log2(138)] = 8
Paraqitja e numrave me shenjë
• Me modul dhe shenjë (numra të plotë)
• Me komplement të dyshit (numra të plotë)
• Standarti IEEE-754 32 bit (numra me
presje)

• Mënyra paraqitje të sistemeve të


informacionit që matematikanët kanë
shpikur në kohë të ndryshme, dhe që janë
gjetur si të përputhshme me shumë logjika
projektimi të sistemeve të qarqeve shifrore.
Paraqitja me modul dhe shenjë
Intervali i numrave: paraqitja me
modul dhe shenjë
• Intervali i numrave që mund të paraqiten me
n bite është:
• [0 ÷ 2n-1] numra pa shenjë, gjithsej 2n numra
• [ - (2n-1 -1) ÷ 2n-1 -1] numra me shenjë, gjithsej
2n numra
• Shembull: n=3
• Numra pa shenjë: intervali {0 ÷ 7}, total 8 nr
• Numra me shenjë: intervali {-3,-2,-1,-
0,+0,+1,+2,+3} total 8 numra
Paraqitja me komplement me 2
• Mënyra më e zakonshme për të
paraqitur numrat e plotë në kompjutera.
(me ose pa shenje)
Komplementi i një numri
Komplementi me 2
Komplementi me 1
• Invertim i biteve 0  1

• Shembull:
• X = 01011
• K1(X) = 10100

• Vini re: K2(X) = K1(X) + 1


Intervali i numrave: paraqitja me
komplement të dyshit
• Intervali i numrave që mund të paraqiten me n
bite është:
• [0 ÷ 2n-1] numra pa shenjë, gjithsej 2n numra
• [ - 2n-1 ÷ 2n-1 -1] numra me shenjë, gjithsej 2n
numra
• Shembull: n=3
• Numra pa shenjë: intervali {0 ÷ 7}, total 8 nr
• Numra me shenjë: intervali
{-4,-3,-2,-1, 0,+1,+2,+3} total 8 numra
Paraqitja e numrit me
komplement të dyshit
• Nqs pozitiv, njëlloj si paraqitja modul
dhe shenjë: biti i shenjës 0 dhe moduli i
numrit në binar.
• Nqs negativ, biti i parë 1, moduli i
konvertuar në K2.
• Shembull:
- 17 => 1 [K2(17)] = 1[K2(10001)] = 101111
Standarti IEEE-754
• Standarti IEEE për aritmetikën e
numrave me presje të lëvizshme
(floating point numbers) u themelua në
vitin 1985 nga IEEE dhe adresoi shumë
probleme lidhur me paraqitjen dhe
përllogaritjen e numrave me presje.
• 2 variante shumë të përdorura:
• Single precision -> 32 bite (1:8:23)
• Double precision -> 64 bite (1:11:52)
Standarti IEEE-754 32 bit
• Në 32 bit:
• Biti më me shumë peshë (Most Significant Bit)
paraqet shenjën 0 -> pozitiv dhe 1 -> negativ
• 8 bitet pasuese paraqesin eksponentin
• 23 bitet vijuese paraqesin mantisën
Paraqitja e numrit me presje
sipas standartit IEEE 754 32bit
• Cdo numër me presje paraqitet si fillim
në formë të normalizuar:
• +/- 1.pppp * 2a
• Psh 13.25 => + 1.10101 * 23
• Eksponenti: 127 + a => binar
• Mantisa: pjesa pas presjes në formën e
normalizuar
Numër dhjetor => IEEE 754 32 bit
• Dhjetor => binar
• Shkruajmë formën e normalizuar
• Ndërtojmë paraqitjen IEEE me 32 bit
• Shënojmë bitin e parë 0 /1 (poz / neg)
• Llogarisim eksponentin në sistemin
binar: 127 + a => binar
• Shënojmë mantisën si pjesa pas presjes
e shprehur me 23 bite
Shembull
• 1234 (10) => 10011010010(2)
• Forma e normalizuar: => 1.0011010010 * 210

• Biti i shenjës: 0
• Eksponenti: 127 + 10 = 137(10) => 10001001(2)
• Mantisa: 00110100100000000000000

• Numri i paraqitur sipas standartit IEEE 754


• 01000100100110100100000000000000
Shembull
• -10.5 (10) => - 1010.1 (2)
• Forma e normalizuar: 1.0101 * 23
• Biti i shenjës: 1
• Eksponenti: 127+3=130(10)=>10000010(2)
• Mantisa: 01010000000000000000000

• Numri sipas IEEE 754:


• 11000001001010000000000000000000
IEEE 754 32 bit => dhjetor
• 10111101100000000000000000000000
• Shenja negative
• Eksponenti: 01111011 (2) => 123 (10)
• 123 = 127 + a => a= -4
• Mantisa: 00000000000000000000000
• Forma e normalizuar: -1.0 * 2-4
• -1*2-4 = -0.0625 (10)
Mbledhja e numrave të paraqitur
me modul dhe shenjë
• Rasti 1: mblidhen numra të së njëjtës shenjë
(të dy pozitiv, të dy negativ) => mblidhen
modulet, shenja si e mbledhësve
010101 => 21(10)
+ 001010 + 10(10)
011111 31(10)

101110 => -14


+ 101111 +(-15)
111101 -29
Mbiderdhja (overflow)
101110 => - 14(10)
+ 110110 + - 22(10)
1100100 - 36 (10)
• Me 6 bit të disponueshëm, në paraqitjen
me modul dhe shenjë, mund të
paraqiten numrat [-31 ÷ +31], dhe -36
është jashtë këtij intervali… =>
Mbiderdhje (Overflow)
Mbiderdhja (Modul&Shenjë)
• Quhet problemi që ndodh kur një veprim
aritmetik prodhon rezultat jashtë intervalit
të vlerave që mund të shprehen me aq bit.
• Pritshmëria kur mund të ndodhë?
• Kur mblidhen 2 numra të të njëjtës shenjë,
pasi si rezultat rritet vlera e modulit.
• Nqs numrat kane shenja të ndryshme,
modulet zbriten, ndaj nuk ka rrezik të
tejkalohet numri i biteve që nevojiten për
ta paraqitur rezultatin.
Një gabim i hapësirës: 370 milion $ për një
mbiderdhje numri
• https://hownot2code.com/2016/09/02/a-space-error-370-million-for-an-
integer-overflow/
• 37 sekonda fluturim dhe shpërthim. 10 vite pune dhe
miliona $ u bënë pluhur nga një “integer overflow”.
Problem programimi dhe testimi.
Mbiderdhje në sistem real
• Në 19 shtator 1989, programi
kompjuterik i një spitali shfaqi
parregullsi pasi kishte punuar në
mënyrë të saktë për shumë vite.
• Pas inspektimit u vu re që kjo datë ishte
32,768 (=215) ditë pas 1 janarit 1900 të
cilën kompjuteri, ishte programuar ta
përdorte, si datë fillimi.
• Overflow: programi nuk përllogariste
dot vlera të mëtejshme të sakta.
Zgjidhje e mbiderdhjes
• Rrisim numrin e biteve me të cilët
paraqesim mbledhësit, në atë numër
bitesh sa pritet të ketë nevojë rezultati
të paraqitet.
• Shembull: (-36) ka nevojë për 7 bite të
paraqitet => 7 bite do të përdorim për të
paraqitur (– 14) dhe (– 22) :
1001110 => - 14(10)
+ 1010110 + - 22(10)
1100100 - 36(10)
Mbledhja e numrave të paraqitur
me modul dhe shenjë
• Rasti 2: mbledhësit kanë shenja të
ndryshme
• Modulit më të madh i zbritet moduli më i
vogël, shenja përcaktohet nga shenja e
mbledhësit me modul më tëmadh:
• (-4) + 2 => 4-2, shenja si e -4 => -2
• 5 + (-3) => 5-3, shenja si e 5 => 2
• - 2 + 6 => 6-2, shenja si e 6 => 4
• 7 + (-8) => 8-7, shenja si e -8 => -1
• Këto veprime përkthyer në paraqitjen me
modul dhe shenjë, në vijim…
Mbledhja e numrave me modul
dhe shenje, rasti 2
111101 => -29
+ 011010 +26

1) Bëjmë diferencën e moduleve:


11101
- 11010
00011 => 3(10)
2) Biti i shenjës 1, si e modulit më të
madh (-29) => rezultati 100011
- 27 + 30 => detyrë në klasë
Zbritja e numrave te paraqitur
me modul dhe shenje
• Shenja të njëjta: zbriten modulet, shenja e
më të madhit
• 4-7=> moduli (7-4), shenja e (-7) => -3
• Shenja të kundërta: modulet mblidhen,
shenja e më të madhit
• -7 – (+4)=>moduli (7+4), shenja e (-7)=>-11
• 7 – (-4)=> moduli (7+4), shenja e 7 => 11
Mbledhja e numrave të paraqitur
me komplement të dyshit
• Njëlloj si mbledhje binare. Ndryshe nga
mbledhja në paraqitjen e numrave me
modul dhe shenjë, tani do të mblidhen
edhe bitet e shenjës.
• Si kuptohet mbiderdhja?
– Mund të ndodhë vetëm nëse po mbledhim
numra të së njëjtës shenjë.
– Ndryshimi i bitit të shenjës së rezultatit
krahasuar me mbledhësit tregon
mbiderdhje
Mbledhja e numrave paraqitur
me komplement të dyshit
• Mbledhja e dy numrave të shprehur me 4
bit me komplement të dyshit:
• 4 + 3 =>
0100
+ 0011
0111
• Si rezultat i mbledhjes së 2 numrave
pozitivë gjenerohet një numër pozitiv.
Rezultati i saktë.
Mbiderdhja (overflow)
• 5 + 4 =>
0101
+ 0100
1001
• Nën bitet e shenjës (0) rezulton një bit shenje 1,
që dmth ndryshim i shenjës së pritur, paraqitje jo
e saktë, për shkak të mbiderdhjes. (rezultat i
shumës së dy numrave pozitiv s’mund të jetë një
numër negativ)
• Pse? Intervali i numrave që mund të paraqiten
me 4 bit është [-8 ÷ 7], dhe 9 është jashtë këtij
intervali.
• Zgjidhja: paraqesim mbledhësit me 5 bit, pasi 5
bite janë të nevojshëm për të paraqitur rezultatin:
00101 + 00100 = 01001 (9), rezultat i saktë.
Zbritja e numrave te paraqitur
me komplement te dyshit
• x – y = x + (-y)
• Operandit të parë i mblidhet komplementi
me 2 i operandit të dytë
• Vijimi, mbledhje binare

• Mbiderdhja e mundshme kur numrat kanë


shenja të ndryshme, pasi mbledhja do të
rezultojë mes numrave me shenjë të
njëjtë…
• Shembull: seminar
Veprimet e zhvendosjes

You might also like