20
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.

PI - A02 - Predstavljanje Podataka u Racunaru

Embed Size (px)

Citation preview

Page 1: PI - A02 - Predstavljanje Podataka u Racunaru

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.

Page 2: PI - A02 - Predstavljanje Podataka u Racunaru

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

Page 3: PI - A02 - Predstavljanje Podataka u Racunaru

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

Page 4: PI - A02 - Predstavljanje Podataka u Racunaru

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

Page 5: PI - A02 - Predstavljanje Podataka u Racunaru

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

Page 6: PI - A02 - Predstavljanje Podataka u Racunaru

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

Page 7: PI - A02 - Predstavljanje Podataka u Racunaru

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

Page 8: PI - A02 - Predstavljanje Podataka u Racunaru

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

Page 9: PI - A02 - Predstavljanje Podataka u Racunaru

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

Page 10: PI - A02 - Predstavljanje Podataka u Racunaru

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

+

Page 11: PI - A02 - Predstavljanje Podataka u Racunaru

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)

Page 12: PI - A02 - Predstavljanje Podataka u Racunaru

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)

Page 13: PI - A02 - Predstavljanje Podataka u Racunaru

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.

Page 14: PI - A02 - Predstavljanje Podataka u Racunaru

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

Page 15: PI - A02 - Predstavljanje Podataka u Racunaru

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)

Page 16: PI - A02 - Predstavljanje Podataka u Racunaru

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

Page 17: PI - A02 - Predstavljanje Podataka u Racunaru

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

Page 18: PI - A02 - Predstavljanje Podataka u Racunaru

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.

Page 19: PI - A02 - Predstavljanje Podataka u Racunaru

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.

Page 20: PI - A02 - Predstavljanje Podataka u Racunaru

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.