Upload
aljosa-pusic
View
56
Download
3
Embed Size (px)
Citation preview
PROGRAMIRANJE I
A02 – Predstavljanje podataka u računaru
dr Dražen Brđanin ([email protected])Goran Banjac ([email protected])Danijela Zoran ([email protected])Igor Ševo ([email protected])Aleksandar Keleč ([email protected])
2014.
Predstavljanje podataka u računaru 2
PREDSTAVLJANJE CIJELIH BROJEVA
• Cjelobrojni podaci– neoznačeni cijeli brojevi (pozitivni + nula)– označeni cijeli brojevi (pozitivni + negativni + nula)– formati cijelih brojeva:
bajt (byte) – B riječ (word) – W = 2B dvostruka riječ (doubleword) – D = 4B četvorostruka riječ (quadword) – Q = 8B osmostruka riječ (double quadword) – 16B
– opseg vrijednosti (n bita): 0 V 2n - 1 (neoznačeni podaci) -2n-1 V 2n-1 - 1 (označeni podaci)
A02
Predstavljanje podataka u računaru 3
NEOZNAČENI CJELOBROJNI PODACIA02
Broj 123 predstaviti kao neoznačeni cjelobrojni podatak tipa:a) byte, b) word, c) doubleword, d) quadword.
123 : 261 130 115 0
7 13 11 10 1
c) doubleword
b) word
7 6 5 4 3 2 1 0
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 1 1 1 1 0 1 1
0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1
123 10 = 11110112
63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 031 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1
a) byte
d) quadword
Predstavljanje podataka u računaru 4
NEOZNAČENI CJELOBROJNI PODACIA02
Na slici binarno je prikazan sadržaj jednog segmenta memorije. Odrediti dekadsku vrijednost neoznačenog cjelobrojnog podatka upisanog na lokaciji 0F000h ako se on posmatra kao:
a) byte, b) word.7 6 5 4 3 2 1 0
0 0 1 1 1 0 0 0 0F002h
0 0 0 1 0 0 1 0 0F001h
1 0 0 1 0 0 0 0 0F000h
1 0 0 0 0 0 0 0 0EFFFh
a) byte7 6 5 4 3 2 1 0
1 0 0 1 0 0 0 0
b) word15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 1 0 0 1 0 1 0 0 1 0 0 0 0
V = 27 + 24 = 128 + 16 = 144 V = 212 + 29 + 27 + 24 = 4096 + 512 + 128 + 16 = 4752
Predstavljanje podataka u računaru 5
NEOZNAČENI CJELOBROJNI PODACIA02
Niz cijelih brojeva 1, 23, 128, 255, -10 smjestiti u memoriju kao neoznačene cjelobrojne podatke tipa byte počevši od lokacije 1000h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku.
7 6 5 4 3 2 1 0
01006h 01005h 01004h 01003h 01002h 01001h 01000h 00FFFh
Memorija(heksadecimalno)
Memorija(binarno)
1 0 0 0 0 0 0 00 0 0 1 0 1 1 10 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1
1
12823
255-10
0 11 78 0F F
Predstavljanje podataka u računaru 6
OZNAČENI CJELOBROJNI PODACIA02
Broj -123 predstaviti kao označeni cjelobrojni podatak tipa:a) byte, b) word, c) doubleword.
a) byte
1 0 0 0 0 1 0 0
0 0 0 0 0 0 0 1
1 0 0 0 0 1 0 1
7 6 5 4 3 2 1 0
0 1 1 1 1 0 1 1
1. komplement
+1
123
-123
123 10 = 11110112
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1
1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1
b) word
Predstavljanje podataka u računaru 7
OZNAČENI CJELOBROJNI PODACIA02
c) doubleword
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1
1. k
+1
123
-123
Broj -123 predstaviti kao označeni cjelobrojni podatak tipa:a) byte, b) word, c) doubleword.
123 10 = 11110112
Predstavljanje podataka u računaru 8
OZNAČENI CJELOBROJNI PODACIA02
Na slici binarno je prikazan sadržaj jednog segmenta memorije. Odrediti niz označenih cjelobrojnih jednobajtnih podataka upisanih u prikazanom segmentu.
7 6 5 4 3 2 1 0
0 0 1 1 1 0 0 0 0F002h
0 0 0 1 0 0 1 0 0F001h
1 0 0 1 0 0 0 0 0F000h
1 0 0 0 0 0 0 0 0EFFFh -128
5618
-112
7 6 5 4 3 2 1 0
1 0 0 0 0 0 0 0
V = 24 + 21 = 16 + 2 = 18
7 6 5 4 3 2 1 0
1 0 0 1 0 0 0 0
V = -27 + 24 = -128 + 16 = -112
7 6 5 4 3 2 1 0
0 0 0 1 0 0 1 0
V = -27 = -128
V = 25 + 24 + 23 = 32 + 16 + 8 = 56
7 6 5 4 3 2 1 0
0 0 1 1 1 0 0 0
Predstavljanje podataka u računaru 9
OZNAČENI CJELOBROJNI PODACIA02
Niz cijelih brojeva 1, 255, -1 smjestiti u memoriju kao označene cjelobrojne podatke tipa word, počevši od lokacije 4000h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku.
7 6 5 4 3 2 1 0
04006h 04005h 04004h 04003h 04002h 04001h 04000h 03FFFh
Memorija(heksadecimalno)
Memorija(binarno)
1
-1
255
0 10 0F F0 0
F FF F
0 0 0 0 0 0 0 10 0 0 0 0 0 0 0
1 1 1 1 1 1 1 10 0 0 0 0 0 0 0
1 1 1 1 1 1 1 11 1 1 1 1 1 1 1
7 6 5 4 3 2 1 015 14 13 12 11 10 9 8
7 6 5 4 3 2 1 015 14 13 12 11 10 9 8
7 6 5 4 3 2 1 015 14 13 12 11 10 9 8
Predstavljanje podataka u računaru 10
ZNAKOVNI PODACIA02
0 1 2 3 4 5 6 7 8 9 A B C D E F00 1020 ! ” # $ % & ’ ( ) * + , - . /30 0 1 2 3 4 5 6 7 8 9 : ; < = > ?40 @ A B C D E F G H I J K L M N O50 P Q R S T U V W X Y Z [ \ ] ^ _60 ` a b c d e f g h i j k l m n o70 p q r s t u v w x y z { | } ~
String (niz znakova ) Ab3+ smjestiti u memoriju počevši od lokacije 100h. Sadržaj memorije prikazati u binarnom obliku.
7 6 5 4 3 2 1 0
00106h 00105h 00104h 00103h 00102h 00101h 00100h 000FFh
Memorija(binarno)
0 0 1 1 0 0 1 10 1 1 0 0 0 1 00 1 0 0 0 0 0 1
0 0 1 0 1 0 1 1
A
3b
+
Predstavljanje podataka u računaru 11
PREDSTAVLJANJE REALNIH BROJEVAA02
1 8 23
S ME F
1 11 52
S ME F
1 11 68
S ME F
1 15 112
S ME F
• Predstavljanje brojeva u fiksnom zarezu– BCD kodovanje
nepakovani BCD podaci (jedna BCD cifra – jedan bajt) pakovani BCD podaci (dvije BCD cifre – jedan bajt)
• Predstavljanje brojeva u pokretnom zarezu– IEEE 754 FP standard
obična preciznost (single precision) – 32 bita (IEEE 754-2008: binary32)
dvostruka preciznost (double precision) – 64 bita (IEEE 754-2008: binary64)
proširena preciznost (extended precision) – 80 bita
četvorostruka preciznost (quadruple precision) – 128 bita (IEEE 754-2008: binary128)
Predstavljanje podataka u računaru 12
BROJEVI U FIKSNOM ZAREZUA02
Broj 4562 predstaviti kao nepakovani BCD podatak, a zatim ga smjestiti u memoriju počevši od lokacije 04000h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku.
4 5 6
0 4 0 5 0 6
7 6 5 4 3 2 1 0
04006h 04005h 04004h 04003h 04002h 04001h 04000h 03FFFh
Memorija(binarno)
0 0 0 0 0 1 0 10 0 0 0 0 1 1 00 0 0 0 0 0 1 0
0 0 0 0 0 1 0 00 0 0 0 0 1 0 00 0 0 0 0 1 0 10 0 0 0 0 1 1 00 0 0 0 0 0 1 0
2
0 20 40 50 60 2
Memorija(heksadecimalno)
Predstavljanje podataka u računaru 13
BROJEVI U FIKSNOM ZAREZUA02
4 5 6 2
7 6 5 4 3 2 1 0
04002h 04001h 04000h 03FFFh
Memorija(binarno)
0 1 0 0 0 1 0 10 1 1 0 0 0 1 0
0 1 0 0 0 1 0 10 1 1 0 0 0 1 0
4 5 6 2
4 56 2
Memorija(heksadecimalno)
Broj 4562 predstaviti kao pakovani BCD podatak, a zatim ga smjestiti u memoriju počevši od lokacije 04000h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku.
Predstavljanje podataka u računaru 14
BROJEVI U FIKSNOM ZAREZUA02
Niz brojeva 1, 12, 211 smjestiti u memoriju kao pakovane četvorocifirene BCD podatke, počevši od lokacije 08000h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku.
7 6 5 4 3 2 1 0
08006h 08005h 08004h 08003h 08002h 08001h 08000h 07FFFh
Memorija(binarno)
0 0 0 1 0 0 1 00 0 0 0 0 0 0 00 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0
Memorija(heksadecimalno)
0 00 1
0 01 2
0 21 1 0 0 0 1 0 0 0 1
0 0 0 0 0 0 1 0
1
211
120 0 0 1
0 0 1 2
0 2 1 1
Predstavljanje podataka u računaru 15
BROJEVI U POKRETNOM ZAREZUA02
Broj -14.3 prikazati kao FP podatak u običnoj preciznosti, a zatim ga smjestiti u memoriju počevši od lokacije 01004h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku.
-14.3 = -1110.010011001..2 = -1.110010011001.. · 23
ME = SE + 127 = 3 + 127 = 130 = 100000102
1 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 031 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
7 6 5 4 3 2 1 0
0100Bh 0100Ah 01009h 01008h 01007h 01006h 01005h 01004h
Memorija(binarno)
1 1 0 0 1 1 0 01 1 0 0 1 1 0 00 1 1 0 0 1 0 01 1 0 0 0 0 0 1C 1
6 4C CC C
Memorija(heksadecimalno)
Predstavljanje podataka u računaru 16
BROJEVI U POKRETNOM ZAREZUA02
Broj -14.3 prikazati kao FP podatak u dvostrukoj preciznosti, a zatim ga smjestiti u memoriju počevši od lokacije 01004h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku.
-14.3 = -1110.010011001..2 = -1.110010011001.. · 23
ME = SE + 1023 = 3 + 1023 = 1026 = 100000000102
1 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 163 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 327 6 5 4 3 2 1 0
0100Bh 0100Ah 01009h 01008h 01007h 01006h 01005h 01004h
Memorija(binarno)
1 0 0 1 1 0 0 11 0 0 1 1 0 0 11 0 0 1 1 0 0 11 0 0 1 1 0 0 1
C 02 C9 99 99 99 99 99 9
Memorija(heksadecimalno)
1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 131 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 01 0 0 1 1 0 0 1
1 0 0 1 1 0 0 10 0 1 0 1 1 0 01 1 0 0 0 0 0 0
Predstavljanje podataka u računaru 17
BROJEVI U POKRETNOM ZAREZUA02
Na slici binarno je prikazan sadržaj jednog segmenta memorije. Odrediti realan broj upisan kao FP podatak obične preciznosti na lokaciji 0F000h.
7 6 5 4 3 2 1 0
0 1 0 0 0 0 1 0 0F003h
1 0 0 1 0 1 0 0 0F002h
1 1 0 0 0 0 0 0 0F001h
0 0 0 0 0 0 0 0 0F000h
1 1 0 0 1 0 1 1 0EFFFh
Memorija(binarno)
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 1 0 0 0 0 1 0 1 0 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
SE = ME - 127 = 133 - 127 = 6V = 1.001010011 · 26 = 1001010.0112 = 26 + 23 + 21 + 2-2 + 2-3 = 74.375
ME = 100001012 = 133
Predstavljanje podataka u računaru 18
ZADACI ZA VJEŽBUA02
1. Broj 109 predstaviti kao neoznačeni cjelobrojni podatak tipa:a) byte, b) word, c) doubleword, d) quadword.
2. Broj -109 predstaviti kao označeni cjelobrojni podatak tipa:a) byte, b) word, c) doubleword, d) quadword.
3. Niz cijelih brojeva 10, 255, 1536, 30, -1 smjestiti u memoriju kao neoznačene cjelobrojne podatke tipa word počevši od lokacije 0F000h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku.
4. Niz cijelih brojeva 32, -5, -127, 1 smjestiti u memoriju kao označene cjelobrojne podatke tipa byte počevši od lokacije 400h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku.
7 6 5 4 3 2 1 0
1 1 1 1 1 1 0 1 01007h
1 0 0 0 0 0 1 0 01006h
0 1 1 0 1 0 0 1 01005h
1 1 0 0 1 1 0 0 01004h
5. Odrediti koji se niz neoznačenih, odnosno označenih cjelobrojnih jednobajtnih podataka nalazi u memoriji, ako je sadržaj tog segmenta prikazan na sljedećoj slici.
Predstavljanje podataka u računaru 19
ZADACI ZA VJEŽBUA02
6. U memoriji je počevši od lokacije 0400h upisan niz znakova. Ispisati prvih pet znakova teksta.
2 0 00406h
6 2 00405h
6 F 00404h
4 4 00403h
2 C 00402h
6 C 00401h
5 3 00400h
3 0 003FFh
7. Upisati u memoriju (počevši od lokacije 500h) riječ Banjaluka.
Predstavljanje podataka u računaru 20
ZADACI ZA VJEŽBUA02
8. Niz brojeva 25, 916, 8376 smjestiti u memoriju kao četvorocifirene BCD podatke, počevši od lokacije 08000h. Prikazati sadržaj memorije (binarno i heksadecimalno), ako se podaci upisuju kao:
a) nepakovani BCD, b) pakovani BCD.
9. Niz brojeva 109.375, -109.375, -1, 2-10, 2-100, 2-1000 smjestiti u memoriju počevši od lokacije 04000h, ako se podaci upisuju kao FP podaci u:
a) običnoj preciznosti, b) dvostrukoj preciznosti.
7 6 5 4 3 2 1 0
1 0 1 1 1 1 1 0 0A00Fh
0 1 0 0 0 0 0 0 0A00Eh
0 0 0 0 0 0 0 0 0A00Dh
0 0 0 0 0 0 0 0 0A00Ch
0 1 0 1 0 0 0 1 0A00Bh
10. Na slici je prikazan sadržaj jednog segmenta memorije. Odrediti realan broj upisan kao FP podatak obične preciznosti na lokaciji 0A00Ch.