Pojašnjenja i rješenja zadataka 1-3 s 1. kolokvija iz UURa, ak.god. 2005/06.(by MKova)

Napomena: naravno nisam siguran da je sve 100% točno, ne tužiti se meni kasnije... a pitanja rađe postavite asistentima i demosima, ipak su za to plaćeni.

Zadatak 1.
: prikaz negativnog cijelog broja u jednom byte-u (8 bita):negativni cijeli brojevi se prikazuju tako da: napišemo apsolutnu vrijednost broja u bazi 2, dopunimo nulama na početku broja do 8 bitova (8 znamenaka), svakoj znamenci zamijenimo vrijednost (1 u 0 i 0 u 1), dodamo broju broj 1 (zbrojimo s 1, a ne dodajemo znamenku na kraju). Dobiveni broj zovemo "dvojni komplement" originalnog broja.

-17
-19
-29
-31
-37
-23
broj za pretvorbu
1710 = 100012 1910 = 100112 2910 = 111012 3110 = 111112 3710 = 1001012 2310 = 101112 pretvorba u bazu 2
000100012 000100112 000111012 000111112 001001012 000101112 nadopunjvanje do 8 b
111011102 111011002 111000102 111000002 110110102 111010002 dvostruki komplement
111011112 111011012 111000112 111000012 110110112 111010012 zbrajanje s 1
-1710 = 111011112 -1910 = 111011012 -2910 = 111000112 -3110 = 111000012 -3710 = 110110112 -2310 = 111010012 rješenje (prikaz u rač.)


Zadatak 2. :

a)
pretvaranje brojeva u druge baze:
 
  najlakši način je pretvoriti broj u bazu 10 pa u zadanu bazu. Broj u bazu 10 iz bilo koje baze pretvaramo tako da znamenke broja množimo s bazom na (broj znamenke - 1) i tako dobivene brojeve zbrajamo. npr. 3218 = 3*82 + 2*81 + 1*80 = 192 + 16 + 1 = 20910
Broj iz baze 10 u bilo koju bazu pretvaramo tako da ga dijelimo s brojem baze sve dok ne dijelimo nulu, ostatake zapisujemo i kada smo gotovi prepišemo ih od posljednjeg prema prvom ostatku gdje je posljednji najveća znamenka našeg broja, a prvi je znamenka jedinica. Dakle novi broj zapisujemo s desna na lijevo.
2125 = ?6
3146 = ?4
620 7= ?6
1427 = ?4
2113 = ?7
4467 = ?5
broj
= 2*52 + 1*51 + 2*50
= 50 + 5 + 2 = 5710
= 3*62 + 1*61 + 4*60
= 108 + 6 + 4 = 11810
= 6*72 + 2*71 + 0*70
= 294 + 14 + 0 = 30810
= 1*72 + 4*71 + 2*70
= 49 + 28 + 2 = 7910
= 2*32 + 1*31 + 1*30
= 18 + 3 + 1 = 2210
= 4*72 + 4*71 + 6*70
= 196 + 28 + 6 = 23010
u bazu 10

57 / 6 = 9, ost 3
  9 / 6 = 1, ost 3
  1 / 6 = 0, ost 1

118 / 4 = 29, ost 2
  29 / 4 =   7, ost 1
    7 / 4 =   1, ost 3
    1 / 4 =   0, ost 1
308 / 6 = 51, ost 2
  51 / 6 =   8, ost 3
    8 / 6 =   1, ost 2
    1 / 6 =   0, ost 1
79 / 4 = 19, ost 3
19 / 4 =   4, ost 3
  4 / 4 =   1, ost 0
  1 / 4 =   0, ost 1
22 / 7 = 3, ost 1
  3 / 7 = 0, ost 3
230 / 5 = 46, ost 0
  46 / 5 =   9, ost 1
    9 / 5 =   1, ost 4
    1 / 5 =   0, ost 1
u željenu
bazu
=> 1336 => 13126 => 12326 => 10334 => 317 => 14105 rješenje

b)

zbrajanje brojeva istih baza:
       
 

Princip je isti kao i kod zbrajanja brojeva u bazi 10, samo sada trebamo paziti na "gornju granicu" koja više nije 10 nego ta baza brojeva koje zbrajamo. Dakle prvo zbrajamo znamenke jedinice, kada zbroj pređe najveću zapisivu znamenku te baze (npr. za bazu 10 je 9) nastavimo od nule i pamtimo koliko puta smo prešli, zapisujemo broj koji smo dobili i počnemo zbrajati brojeve sljedeće znamenke s tim da tom zbroju još zbrojimo koliko smo puta prešli najveću zapisivu znamenku iz zbrajanja brojeva prethodne znamenke. Zvuči užasno za nešto tako jednostavno... ali ovo je moja definicija zbrajanja :( , sada rješenja:

         33024
   20123134
-------------
   20222214
         33136
   25001046
-------------
   25034216
         23034
   10002114
-------------
   10031204
         55146
   15435126
-------------
   15534306
         14045
   31424215
-------------
   31443305
         21314
   11112134
-------------
   11200104

Zadatak 3. : Napiši KNF i DNF, skraćivanje neobavezno
KNF: gledamo kada je rezulzat 0 i za red s rezultatom nula negiramo varijable koje imaju u tom redu 1, zbrajamo ih i takav zbroj množimo s ostalim zbrojevima iz ostalih redova.
DNF: gledamo kada je rezultat 1 i za red s rezultatom jedan negiramo varijable koje imaju u tom redu 0, množimo ih i takav umnožak zbrajamo s ostalim umnošcima iz ostalih redova.
Rezulzati, f1- f6 su rezultati f-a za 6 grupa, dakle gleda se samo jedan f tj. jedan stupac rješenja. Negirane varijable su one sa crtom po sredini, ali pravilno negiranje je sa crtom iznad varijable (u html-u nema crte iznad).
x2
x1
x0
f1
f2
f3
f4
f5
f6
0
0
0
0
1
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
1
1
0
0
0
0
1
1
0
1
1
1
1
0
1
0
0
0
0
1
1
1
1
1
0
1
1
0
0
1
0
1
1
1
0
0
1
0
0
1
1
1
1
1
0
1
0
0
0
1
KNF za f1 (x2+ x1+ x0)(x2+ x1+ x0)(x2+ x1+ x0)(x2+ x1+ x0)(x2+ x1+ x0)(x2+ x1+ x0)
KNF za f2 (x2+ x1+ x0)(x2+ x1+x0)(x2+ x1+ x0)
KNF za f3 (x2+ x1+ x0)(x2+ x1+ x0)(x2+ x1+ x0)(x2+ x1+ x0)(x2+ x1+ x0)
KNF za f4 (x2+ x1+ x0)(x2+ x1+ x0)(x2+ x1+ x0)(x2+ x1+ x0)
KNF za f5 (x2+ x1+ x0)(x2+ x1+ x0)(x2+ x1+ x0)(x2+ x1+ x0)
KNF za f6 (x2+ x1+ x0)(x2+ x1+ x0)
DNF za f1 (x2 x1 x0)+(x2 x1 x0)
DNF za f2 (x2 x1 x0)+(x2 x1 x0)+(x2 x1 x0)+(x2 x1 x0)+(x2 x1 x0)
DNF za f3 (x2 x1 x0)+(x2 x1 x0)+(x2 x1 x0)
DNF za f4 (x2 x1 x0)+(x2 x1 x0)+(x2 x1 x0)+(x2 x1 x0)
DNF za f5 (x2 x1 x0)+(x2 x1 x0)+(x2 x1 x0)+(x2 x1 x0)
DNF za f6 (x2 x1 x0)+(x2 x1 x0)+(x2 x1 x0)+(x2 x1 x0)+(x2 x1 x0)+(x2 x1 x0)