Fondamenti esercitazioni parte2c

Post on 19-Jul-2015

131 views 2 download

Transcript of Fondamenti esercitazioni parte2c

FONDAMENTI DI INFORMATICA

FONDAMENTI DI INFORMATICA

ESERCITAZIONI ANNO ACCADEMICO 2012-2013

DOTT. FABRIZIO SOLINAS

Mail: fabrizio.solinas@unica.it

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 2

Parte 2c: INDICE

• RAPPRESENTAZIONE DI NUMERI NEGATIVI

MODULO E SEGNO

COMPLEMENTO A 1

COMPLEMENTO A 2

• OVERFLOW

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 3

Parte 2c

CODIFICAZIONE DEI NUMERI.

RAPPRESENTAZIONE DI NUMERI NEGATIVI

MODULO E SEGNO.

IL NUMERO VIENE RAPPRESENTATO ATTRAVERSO

– MODULO, IL SUO VALORE ASSOLUTO

– SEGNO, 0: POSITIVO, 1: NEGATIVO

IL RANGE: -2N-1 - 1,..…,0,..…,2N-1 - 1

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 4

Parte 2c

CODIFICAZIONE DEI NUMERI.

RAPPRESENTAZIONE DI NUMERI NEGATIVI

MODULO E SEGNO.

ESEMPIO:

– PER N=8 I NUMERI +13 E -13

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 5

Parte 2c

CODIFICAZIONE DEI NUMERI.

RAPPRESENTAZIONE DI NUMERI NEGATIVI

MODULO E SEGNO.

ESEMPIO:

– ESISTONO DUE 0

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 6

Parte 2c

CODIFICAZIONE DEI NUMERI.

RAPPRESENTAZIONE DI NUMERI NEGATIVI

COMPLEMENTO A 1.

IL NUMERO POSITIVO NELLA TRADIZIONALE FORMA BINARIA

IL NUMERO NEGATIVO NEL COMPLEMENTO A 1 DEL NUMERO

POSITIVO

(i bit a 1 diventano 0 e viceversa)

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 7

Parte 2c

CODIFICAZIONE DEI NUMERI.

RAPPRESENTAZIONE DI NUMERI NEGATIVI

COMPLEMENTO A 1.

ESEMPIO:

– RAPPRESENTAZIONE IN FORMA COMPLEMENTO A 1 DEL NUMERO -33 IN 1 BYTE

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 8

Parte 2c

CODIFICAZIONE DEI NUMERI.

RAPPRESENTAZIONE DI NUMERI NEGATIVI

COMPLEMENTO A 1. ADDIZIONE.

ESEMPIO 1:

– ADDIZIONARE I NUMERI +33 E -21 IN UN BYTE:

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 9

Parte 2c

CODIFICAZIONE DEI NUMERI.

RAPPRESENTAZIONE DI NUMERI NEGATIVI

COMPLEMENTO A 1. ADDIZIONE.

ESERCIZIO 1:

– ADDIZIONARE I NUMERI -33 E -21 IN UN BYTE:

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 10

Parte 2c

CODIFICAZIONE DEI NUMERI.

RAPPRESENTAZIONE DI NUMERI NEGATIVI

COMPLEMENTO A 1. ADDIZIONE.

ESERCIZIO 1:

– ADDIZIONARE I NUMERI -33 E -21 IN UN BYTE:

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 11

CODIFICAZIONE DELL’INFORMAZIONE

CODIFICAZIONE DEI NUMERI.

RAPPRESENTAZIONE DI NUMERI NEGATIVI

COMPLEMENTO A 2.

• Si effettua il complemento a 1 e poi si aggiunge 1 (invertire tutti i bit

partendo dal primo 1, escluso, che si incontra leggendo il valore

assoluto da destra verso sinistra).

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 12

CODIFICAZIONE DELL’INFORMAZIONE

CODIFICAZIONE DEI NUMERI.

RAPPRESENTAZIONE DI NUMERI NEGATIVI

COMPLEMENTO A 2.

ESEMPIO:

– RAPPRESENTAZIONE IN FORMA COMPLEMENTO A DUE DEL NUMERO -72 IN 1

BYTE

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 13

Parte 2c

CODIFICAZIONE DEI NUMERI.

RAPPRESENTAZIONE DI NUMERI NEGATIVI

COMPLEMENTO A 2.

ESERCIZIO 1:

– RAPPRESENTAZIONE IN FORMA COMPLEMENTO A DUE DEL NUMERO -53 IN UN

BYTE

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 14

Parte 2c

CODIFICAZIONE DEI NUMERI.

RAPPRESENTAZIONE DI NUMERI NEGATIVI

COMPLEMENTO A 2.

SOLUZIONE 1:

– RAPPRESENTAZIONE IN FORMA COMPLEMENTO A DUE DEL NUMERO -53 IN UN

BYTE

FONDAMENTI DI INFORMATICA

Parte 2c: Esercizi 1/2

• Rappresentare in modulo e segno e complemento a 2 i seguenti

numeri negativi su 10 bit:

-31

-109

-321

• Come procedere:

In modulo e segno calcolare la rappresentazione binaria del

valore assoluto del numero e mettere a 1 il bit del segno

In complemento a 2 calcolare la rappresentazione binaria del

valore assoluto del numero e invertire tutti i bit partendo dal primo

1, escluso, che si incontra leggendo il valore assoluto da destra

verso sinistra

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 15

FONDAMENTI DI INFORMATICA

Parte 2c: Esercizi 2/2

• Modulo e segno:

-31 [1000011111]

-109 [1001101101]

-321 [1101000001]

• Complemento a 2:

-31 (valore assoluto: 0000011111) 1111100001

-109 (valore assoluto: 0001101101) 1110010011

-321 (valore assoluto: 0101000001) 1010111111

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 16

FONDAMENTI DI INFORMATICA

Parte 2c: Esercizi 1/2

• A quali numeri decimali corrispondono i seguenti numeri binari

rappresentati in modulo e segno e in complemento a 2?

100110

11110

111

0101

• Come procedere:

In modulo e segno eliminare il bit del segno e calcolare il valore assoluto

in notazione decimale. Il risultato sara il valore assoluto se il bit di segno e

0, oppure il corrispondente numero negativo se il bit di segno e 1.

In complemento a 2, se il bit di segno e 1, calcolare la rappresentazione

binaria del valore assoluto del numero invertendo tutti i bit partendo dal

primo 1, escluso, che si incontra leggendo la stringa binaria da destra verso

sinistra. Calcolare quindi il valore assoluto in notazione decimale. Il risultato

sara il corrispondente numero negativo. Se invece il bit di segno e 0, allora

il numero e positivo e basta calcolarne la rappresentazione decimale senza

invertire i bit.

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 17

100110 e negativo perche il bit del segno vale 1.

In modulo e segno il valore assoluto e 000110 = 6, quindi il risultato

e -6

In complemento a 2 il valore assoluto diventa 011010 = 26,quindi il

risultato e -26

FONDAMENTI DI INFORMATICA

Parte 2c:Esercizi 2/2

• 11110 e negativo perche il bit del segno vale 1. • In modulo e segno il valore assoluto e 01110 = 14, quindi il risultato e

-14 • In complemento a 2 il valore assoluto diventa 00010 = 2,quindi il

risultato e -2

• 111 e negativo perche il bit del segno vale 1. • In modulo e segno il valore assoluto e 011 = 3, quindi il risultato e -3 • In complemento a 2 il valore assoluto diventa 001 = 1,quindi il

risultato e -1

• 0101 e positivo perche il bit del segno vale 0. • In modulo e segno il valore assoluto e 0101 = 5, quindi il risultato e 5 • In complemento a 2 il risultato e lo stesso ottenuto per modulo e

segno, ovvero 5

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 18

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 19

Parte 2c

COMPLEMENTO A 2. ADDIZIONE.

ESEMPIO 1:

– ADDIZIONARE I NUMERI -33 E +21 IN UN BYTE:

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 20

Parte 2c

COMPLEMENTO A 2. ADDIZIONE.

ESERCIZIO 1:

– ADDIZIONARE I NUMERI -33 E -21 IN UN BYTE:

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 21

CODIFICAZIONE DELL’INFORMAZIONE

COMPLEMENTO A 2. ADDIZIONE.

SOLUZIONE:

– ADDIZIONARE I NUMERI -33 E -21 IN UN BYTE:

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 22

CODIFICAZIONE DELL’INFORMAZIONE

COMPLEMENTO A 2. ADDIZIONE.

ESERCIZIO 2:

– ADDIZIONARE I NUMERI -75 E -12 IN UN BYTE:

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 23

CODIFICAZIONE DELL’INFORMAZIONE

COMPLEMENTO A 2. ADDIZIONE.

SOLUZIONE 2:

– ADDIZIONARE I NUMERI -75 E -12 IN UN BYTE:

FONDAMENTI DI INFORMATICA

COMPLEMENTO A 2. SOTTRAZIONE.

• 01011-0100000

Come procedere:

– La sottrazione A-B puo essere fatta sommando ad A il complemento a 2 di B.

• Il complemento a 2 di 0100000 e 1100000

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 24

1101011 e un numero negativo in

complemento a 2. Il suo valore

assoluto e 0010101 ovvero 21.

Quindi il risultato e -21.

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 25

CODIFICAZIONE DELL’INFORMAZIONE

COMPLEMENTO A 2. SOTTRAZIONE.

ESEMPIO 1:

– SOTTRARRE I NUMERI +33 E -21 IN UN BYTE:

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 26

CODIFICAZIONE DELL’INFORMAZIONE

COMPLEMENTO A 2. SOTTRAZIONE.

ESERCIZIO 1:

– SOTTRARRE I NUMERI -33 E -21 IN UN BYTE:

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 27

CODIFICAZIONE DELL’INFORMAZIONE

COMPLEMENTO A 2. SOTTRAZIONE.

SOLUZIONE:

– SOTTRARRE I NUMERI -33 E -21 IN UN BYTE:

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 28

CODIFICAZIONE DELL’INFORMAZIONE

COMPLEMENTO A 2. SOTTRAZIONE.

ESERCIZIO 2:

– SOTTRARRE I NUMERI +33 E +21 IN UN BYTE:

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 29

CODIFICAZIONE DELL’INFORMAZIONE

COMPLEMENTO A 2. SOTTRAZIONE.

SOLUZIONE 2:

– SOTTRARRE I NUMERI +33 E +21 IN UN BYTE:

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 30

CODIFICAZIONE DELL’INFORMAZIONE

ESERCIZI RIASSUNTIVI.

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 31

CODIFICAZIONE DELL’INFORMAZIONE

ESERCIZI RIASSUNTIVI.

ESERCIZIO 1.

– DATO IL SEGUENTE NUMERO DECIMALE: 39

– INDICARE IL NUMERO CON 8 BIT ATTRAVERSO:

• RAPPRESENTAZIONE BINARIA

• RAPPRESENTAZIONE MODULO E SEGNO

• RAPPRESENTAZIONE COMPLEMENTO A 1

• RAPPRESENTAZIONE COMPLEMENTO A 2

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 32

CODIFICAZIONE DELL’INFORMAZIONE

CODIFICAZIONE DEI NUMERI.

RAPPRESENTAZIONE DI NUMERI NEGATIVI

ESERCIZI RIASSUNTIVI.

SOLUZIONE 1.

– DATO IL SEGUENTE NUMERO BINARIO: 100111

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 33

CODIFICAZIONE DELL’INFORMAZIONE

CODIFICAZIONE DEI NUMERI.

RAPPRESENTAZIONE DI NUMERI NEGATIVI

ESERCIZI RIASSUNTIVI.

ESERCIZIO 2.

– DATO IL SEGUENTE NUMERO BINARIO: 10100111

– INDICARE IL NUMERO CON 8 BIT ATTRAVERSO:

• CONVERSIONE BINARIA

• RAPPRESENTAZIONE MODULO E SEGNO

• RAPPRESENTAZIONE COMPLEMENTO A 2

• RAPPRESENTAZIONE COMPLEMENTO A 1

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 34

CODIFICAZIONE DELL’INFORMAZIONE

ESERCIZI RIASSUNTIVI.

SOLUZIONE 2.

– DATO IL SEGUENTE NUMERO BINARIO: 10100111

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 35

CODIFICAZIONE DELL’INFORMAZIONE

ESERCIZI RIASSUNTIVI.

ESERCIZIO 3.

– RAPPRESENTAZIONE COMPLEMENTO A 2 CON 8 BIT

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 36

CODIFICAZIONE DELL’INFORMAZIONE

ESERCIZI RIASSUNTIVI.

SOLUZIONE 3.

– RAPPRESENTAZIONE COMPLEMENTO A 2 CON 8 BIT

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 37

CODIFICAZIONE DELL’INFORMAZIONE

ESERCIZI RIASSUNTIVI.

ESERCIZIO 4.

– RAPPRESENTAZIONE COMPLEMENTO A 2 CON 8 BIT

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 38

CODIFICAZIONE DELL’INFORMAZIONE

ESERCIZI RIASSUNTIVI.

SOLUZIONE 4.

– RAPPRESENTAZIONE COMPLEMENTO A 2 CON 8 BIT

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 39

CODIFICAZIONE DELL’INFORMAZIONE

ESERCIZI RIASSUNTIVI.

ESERCIZIO 5.

– RAPPRESENTAZIONE COMPLEMENTO A 2 CON 8 BIT

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 40

CODIFICAZIONE DELL’INFORMAZIONE

ESERCIZI RIASSUNTIVI.

SOLUZIONE 5.

– RAPPRESENTAZIONE COMPLEMENTO A 2 CON 8 BIT

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 41

CODIFICAZIONE DELL’INFORMAZIONE

ESERCIZI RIASSUNTIVI.

ESERCIZIO 6.

– RAPPRESENTAZIONE COMPLEMENTO A 2 CON 8 BIT

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 42

CODIFICAZIONE DELL’INFORMAZIONE

ESERCIZI RIASSUNTIVI.

SOLUZIONE 6.

– RAPPRESENTAZIONE COMPLEMENTO A 2 CON 8 BIT

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 43

CODIFICAZIONE DELL’INFORMAZIONE

ESERCIZI RIASSUNTIVI.

ESERCIZIO 7.

– RAPPRESENTAZIONE COMPLEMENTO A 1 CON 8 BIT

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 44

CODIFICAZIONE DELL’INFORMAZIONE

ESERCIZI RIASSUNTIVI.

SOLUZIONE 7.

– RAPPRESENTAZIONE COMPLEMENTO A 1 CON 8 BIT

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 45

CODIFICAZIONE DELL’INFORMAZIONE

ESERCIZI RIASSUNTIVI.

ESERCIZIO 8.

– RAPPRESENTAZIONE COMPLEMENTO A 1 CON 8 BIT

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 46

CODIFICAZIONE DELL’INFORMAZIONE

ESERCIZI RIASSUNTIVI.

SOLUZIONE 8.

– RAPPRESENTAZIONE COMPLEMENTO A 1 CON 8 BIT

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 47

CODIFICAZIONE DELL’INFORMAZIONE

CODIFICAZIONE DEI NUMERI.

OVERFLOW

IL RISULTATO PREVEDE UN NUMERO DI BIT MAGGIORE DI QUELLO

DISPONIBILE

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 48

CODIFICAZIONE DELL’INFORMAZIONE

CODIFICAZIONE DEI NUMERI.

OVERFLOW

ESEMPIO: ADDIZIONE DI +7 E +6 IN MODULO E SEGNO CON 4 BIT

FONDAMENTI DI INFORMATICA

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 49

CODIFICAZIONE DELL’INFORMAZIONE

CODIFICAZIONE DEI NUMERI.

OVERFLOW.

RILEVAMENTO NELLA RAPPRESENTAZIONE COMPLEMENTO A 2.

ESERCIZIO 3: ADDIZIONE DI -3 E -2

1101 +

1110 =

11011

Il riporto viene scartato in quanto al di fuori

dei bit disponibili.

NON E’ OVERFLOW!!

FONDAMENTI DI INFORMATICA

Condizione di OVERFLOW

In quali dei seguenti casi si può ottenere

overflow?

Somma di due numeri con segno concorde?

[SI]

Somma di due numeri con segno discorde?

[NO]

Sottrazione di due numeri con segno concorde?

[NO]

Sottrazione di due numeri con segno discorde?

[SI]

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 50

FONDAMENTI DI INFORMATICA

Condizione di OVERFLOW

1101+

1010=

10111

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 51

Cn Cn-1

Si osservano i riporti generati dalle

colonne dei due bit poù significativi:

Se Cn = Cn-1 OK

Se Cn ≠ Cn-1 Overflow

FONDAMENTI DI INFORMATICA

Condizione di OVERFLOW

• Verificare che in 4 bit: -6 + (-6) genera OVERFLOW

-3 + 6 non genera OVERFLOW

6 + 6 genera OVERFLOW

-6 + 3 non genera OVERFLOW

UNIVERSITA' DI CAGLIARI-CORSO DI LAUREA IN INFORMATICA 52