PROGRAMIRANJE I A 02 Predstavljanje podataka u raunaru




















- Slides: 20
PROGRAMIRANJE I A 02 – Predstavljanje podataka u računaru dr Dražen Brđanin Goran Banjac Danijela Zoran Igor Ševo Aleksandar Keleč (bdrazen@etfbl. net) (goran. banjac@etfbl. net) (danijela. zoran@etfbl. net) (igor. sevo@etfbl. net) (aleksandar. kelec@etfbl. net) 2014.
A 02 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 = 2 B dvostruka riječ (doubleword) – D = 4 B četvorostruka riječ (quadword) – Q = 8 B osmostruka riječ (double quadword) – 16 B – opseg vrijednosti (n bita): § 0 V 2 n - 1 (neoznačeni podaci) § -2 n-1 V 2 n-1 - 1 (označeni podaci) Predstavljanje podataka u računaru 2
A 02 NEOZNAČENI CJELOBROJNI PODACI Broj 123 predstaviti kao neoznačeni cjelobrojni podatak tipa: a) byte, b) word, c) doubleword, d) quadword. a) byte 7 6 5 4 3 2 1 123 : 2 0 1 1 0 1 61 1 b) word 30 1 15 14 13 12 11 10 9 0 0150 0 00 7 1 c) doubleword 3 1 31 30 29 28 27 26 25 0 0 10 0 1 0 123 10 = 11110112 1 8 7 6 5 4 3 2 1 0 0 0 1 1 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 1 1 0 1 1 d) quadword 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 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 1 1 Predstavljanje podataka u računaru 3
A 02 NEOZNAČENI CJELOBROJNI PODACI Na slici binarno je prikazan sadržaj jednog segmenta memorije. Odrediti dekadsku vrijednost neoznačenog cjelobrojnog podatka upisanog na lokaciji 0 F 000 h ako se on posmatra kao: a) byte, b) word. 7 6 5 4 3 2 1 0 0 0 1 1 1 0 0 F 002 h 0 0 0 1 0 0 F 001 h 1 0 0 0 0 0 F 000 h 1 0 0 0 0 EFFFh a) byte 7 6 b) word 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 1 0 0 V = 27 + 24 = 128 + 16 = 144 V = 212 + 29 + 27 + 24 = 4096 + 512 + 128 + 16 = 4752 Predstavljanje podataka u računaru 4
A 02 NEOZNAČENI CJELOBROJNI PODACI Niz cijelih brojeva 1, 23, 128, 255, -10 smjestiti u memoriju kao neoznačene cjelobrojne podatke tipa byte počevši od lokacije 1000 h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku. Memorija (binarno) 7 6 5 4 3 2 Memorija (heksadecimalno) 1 0 01006 h 01005 h -10 255 128 23 1 01004 h 1 1 1 1 01003 h F F 1 0 0 0 01002 h 8 0 0 1 0 1 1 1 01001 h 1 7 0 0 0 0 1 01000 h 0 1 00 FFFh Predstavljanje podataka u računaru 5
A 02 OZNAČENI CJELOBROJNI PODACI Broj -123 predstaviti kao označeni cjelobrojni podatak tipa: a) byte, b) word, c) doubleword. 123 10 = 11110112 a) byte 7 6 b) word 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 1 1 123 0 0 0 0 0 1 1 1 0 0 1. komplement 1 1 1 1 1 0 0 0 0 1 +1 0 0 0 0 1 1 0 0 1 0 1 -123 1 1 1 1 1 0 0 1 0 1 Predstavljanje podataka u računaru 6
A 02 OZNAČENI CJELOBROJNI PODACI Broj -123 predstaviti kao označeni cjelobrojni podatak tipa: a) byte, b) word, c) doubleword. 123 10 = 11110112 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 1 1 123 1 1 1 1 1 1 1 0 0 1. k 0 0 0 0 0 0 0 0 1 +1 1 1 1 1 1 1 0 0 1 0 1 -123 Predstavljanje podataka u računaru 7
A 02 OZNAČENI CJELOBROJNI PODACI Na slici binarno je prikazan sadržaj jednog segmenta memorije. Odrediti niz označenih cjelobrojnih jednobajtnih podataka upisanih u prikazanom segmentu. 7 56 18 -112 -128 6 5 4 3 2 1 7 0 6 5 4 3 2 1 0 0 0 1 1 1 0 0 F 002 h 1 0 0 0 0 0 1 0 0 F 001 h V = -27 = -128 1 0 0 0 0 0 F 000 h 7 1 0 0 0 0 EFFFh 1 0 0 0 0 6 5 4 3 2 1 0 V = -27 + 24 = -128 + 16 = -112 7 6 5 4 3 2 1 0 0 1 0 V = 24 + 21 = 16 + 2 = 18 7 6 5 4 3 2 1 0 0 0 1 1 1 0 0 0 V = 25 + 24 + 23 = 32 + 16 + 8 = 56 Predstavljanje podataka u računaru 8
A 02 OZNAČENI CJELOBROJNI PODACI Niz cijelih brojeva 1, 255, -1 smjestiti u memoriju kao označene cjelobrojne podatke tipa word, počevši od lokacije 4000 h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 1 1 1 1 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 1 1 1 -1 255 1 Memorija (binarno) 0 7 6 5 4 3 2 Memorija (heksadecimalno) 1 0 04006 h 04005 h F F 04004 h F F 04003 h 0 0 04002 h F F 04001 h 0 0 04000 h 0 1 03 FFFh Predstavljanje podataka u računaru 9
A 02 ZNAKOVNI PODACI String (niz znakova ) Ab 3+ smjestiti u memoriju počevši od lokacije 100 h. Sadržaj memorije prikazati u binarnom obliku. Memorija (binarno) 0 1 2 3 4 5 6 7 8 9 A B C D E F 00 7 6 5 4 3 2 1 0 00106 h 10 20 00105 h ! ” # $ % & ’ ( ) * + , -. / 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 O 50 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 o 70 p q r s t u v w x y z { | } ~ Predstavljanje podataka u računaru 00104 h + 3 b A 0 0 1 0 1 1 00103 h 0 0 1 1 00102 h 0 1 1 0 0 0 1 0 00101 h 0 1 0 0 0 1 00100 h 000 FFh 10
A 02 PREDSTAVLJANJE REALNIH BROJEVA • 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: binary 32) 1 8 23 S ME F § dvostruka preciznost (double precision) – 64 bita (IEEE 754 -2008: binary 64) 1 11 52 S ME F § proširena preciznost (extended precision) – 80 bita 1 11 68 S ME F § četvorostruka preciznost (quadruple precision) – 128 bita (IEEE 754 -2008: binary 128) 1 15 112 S ME F Predstavljanje podataka u računaru 11
A 02 BROJEVI U FIKSNOM ZAREZU Broj 4562 predstaviti kao nepakovani BCD podatak, a zatim ga smjestiti u memoriju počevši od lokacije 04000 h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku. 4 5 6 2 Memorija (binarno) Memorija (heksadecimalno) 7 6 5 4 3 2 1 0 04006 h 04005 h 04004 h 0 4 0 0 50 0 0 1 60 0 2 4 0 0 0 1 0 0 04003 h 0 0 0 1 0 5 0 0 0 1 04002 h 0 0 0 1 1 0 0 6 0 0 0 1 1 0 04001 h 0 0 0 1 0 0 2 0 0 0 1 0 04000 h 03 FFFh Predstavljanje podataka u računaru 12
A 02 BROJEVI U FIKSNOM ZAREZU Broj 4562 predstaviti kao pakovani BCD podatak, a zatim ga smjestiti u memoriju počevši od lokacije 04000 h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku. 4 5 6 2 Memorija (binarno) Memorija (heksadecimalno) 7 6 5 4 3 2 1 0 04002 h 4 5 6 20 1 0 0 0 1 4 5 0 1 0 0 0 1 04001 h 0 1 1 0 0 0 1 0 6 2 0 1 1 0 0 0 1 0 04000 h 03 FFFh Predstavljanje podataka u računaru 13
A 02 BROJEVI U FIKSNOM ZAREZU Niz brojeva 1, 12, 211 smjestiti u memoriju kao pakovane četvorocifirene BCD podatke, počevši od lokacije 08000 h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku. Memorija (binarno) Memorija (heksadecimalno) 7 6 5 4 3 2 1 0 08006 h 0 2 1 1 211 0 0 1 2 12 0 0 0 1 1 0 2 0 0 0 1 0 08005 h 1 1 0 0 0 1 08004 h 0 0 08003 h 1 2 0 0 0 1 0 08002 h 0 0 08001 h 0 1 0 0 0 0 1 08000 h 07 FFFh Predstavljanje podataka u računaru 14
A 02 BROJEVI U POKRETNOM ZAREZU Broj -14. 3 prikazati kao FP podatak u običnoj preciznosti, a zatim ga smjestiti u memoriju počevši od lokacije 01004 h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku. -14. 3 = -1110. 01001. . 2 = -1. 11001001. . · 23 ME = SE + 127 = 3 + 127 = 130 = 100000102 Memorija (binarno) Memorija (heksadecimalno) 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 20100 B 1 0 h 1 1 0 0 0 1 1 0 0 1 10100 A 0 0 h 01009 h 01008 h Predstavljanje podataka u računaru C 1 1 1 0 0 0 1 01007 h 6 4 0 1 1 0 0 01006 h C C 1 1 0 0 01005 h C C 1 1 0 0 01004 h 15
A 02 BROJEVI U POKRETNOM ZAREZU Broj -14. 3 prikazati kao FP podatak u dvostrukoj preciznosti, a zatim ga smjestiti u memoriju počevši od lokacije 01004 h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku. -14. 3 = -1110. 01001. . 2 = -1. 11001001. . · 23 ME = SE + 1023 = 3 + 1023 = 1026 = 10000102 Memorija (binarno) Memorija (heksadecimalno) 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 48 47 46 45 44 43 42 7 41 6 40 5 39 4 38 3 37 2 36 1 35 0 34 33 32 1 1 0 0 0 0 1 0 1 1 0 0 C 1 0 00 1 1 10 10 01 01 00100 B 0 1 h 0 0 1 1 0 0 0100 Ah 2 C 9 9 1 0 0 1 1 09 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 915 14 913 12 11 10 1 0 0 1 91 0 90 1 1 10 1 9 9 9 Predstavljanje podataka u računaru 9 08 17 16 05 04 13 01009 h 201008 1 0 h 0 01 1 10 0 01 1 001007 0 1 h 0 0 1 1 0 0 1 01006 h 0 0 1 1 0 0 1 01005 h 1 0 0 1 01004 h 16
A 02 BROJEVI U POKRETNOM ZAREZU Na slici binarno je prikazan sadržaj jednog segmenta memorije. Odrediti realan broj upisan kao FP podatak obične preciznosti na lokaciji 0 F 000 h. Memorija (binarno) 7 6 5 4 3 2 1 0 0 0 0 1 0 0 F 003 h 1 0 0 0 F 002 h 1 1 0 0 0 0 F 001 h 0 0 0 0 0 F 000 h 1 1 0 0 1 1 0 EFFFh 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 1 0 1 0 0 1 1 0 0 0 0 ME = 100001012 = 133 SE = ME - 127 = 133 - 127 = 6 V = 1. 001010011 · 26 = 1001010. 0112 = 26 + 23 + 21 + 2 -2 + 2 -3 = 74. 375 Predstavljanje podataka u računaru 17
A 02 ZADACI ZA VJEŽBU 1. 2. 3. 4. 5. Broj 109 predstaviti kao neoznačeni cjelobrojni podatak tipa: a) byte, b) word, c) doubleword, d) quadword. Broj -109 predstaviti kao označeni cjelobrojni podatak tipa: a) byte, b) word, c) doubleword, d) quadword. Niz cijelih brojeva 10, 255, 1536, 30, -1 smjestiti u memoriju kao neoznačene cjelobrojne podatke tipa word počevši od lokacije 0 F 000 h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku. Niz cijelih brojeva 32, -5, -127, 1 smjestiti u memoriju kao označene cjelobrojne podatke tipa byte počevši od lokacije 400 h. Sadržaj memorije prikazati u binarnom i heksadecimalnom obliku. 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. 7 6 5 4 3 2 1 0 1 1 1 0 1 01007 h 1 0 0 0 1 0 01006 h 0 1 1 0 0 1 01005 h 1 1 0 0 01004 h Predstavljanje podataka u računaru 18
A 02 ZADACI ZA VJEŽBU 6. 7. U memoriji je počevši od lokacije 0400 h upisan niz znakova. Ispisati prvih pet znakova teksta. 2 0 00406 h 6 2 00405 h 6 F 00404 h 4 4 00403 h 2 C 00402 h 6 C 00401 h 5 3 00400 h 3 0 003 FFh Upisati u memoriju (počevši od lokacije 500 h) riječ Banjaluka. Predstavljanje podataka u računaru 19
A 02 ZADACI ZA VJEŽBU 8. Niz brojeva 25, 916, 8376 smjestiti u memoriju kao četvorocifirene BCD podatke, počevši od lokacije 08000 h. Prikazati sadržaj memorije (binarno i heksadecimalno), ako se podaci upisuju kao: a) nepakovani BCD, b) pakovani BCD. 9. Niz brojeva 109. 375, -1, 2 -100, 2 -1000 smjestiti u memoriju počevši od lokacije 04000 h, ako se podaci upisuju kao FP podaci u: a) običnoj preciznosti, b) dvostrukoj preciznosti. 10. Na slici je prikazan sadržaj jednog segmenta memorije. Odrediti realan broj upisan kao FP podatak obične preciznosti na lokaciji 0 A 00 Ch. 7 6 5 4 3 2 1 0 1 1 1 0 0 A 00 Fh 0 1 0 0 0 0 A 00 Eh 0 0 0 0 0 A 00 Dh 0 0 0 0 0 A 00 Ch 0 1 0 0 0 1 0 A 00 Bh Predstavljanje podataka u računaru 20