46
- - 1 - - Esercitazioni - Esercitazioni - Informatica A Informatica A Roberto Tedesco E-mail: [email protected] Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure 02 2399 3668 Ricevimento: venerdì 10.30 – 12.30 Sito web del corso: http:// www.elet.polimi.it/corsi/infoA Slide mostrate durante l’esercitazione Raccolte di esercizi Di regola, le slide saranno disponibili prima della lezione

- 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: [email protected]@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

Embed Size (px)

Citation preview

Page 1: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 11 - -

Esercitazioni - Informatica AEsercitazioni - Informatica A

Roberto TedescoE-mail: [email protected]: 103, 1° piano DEITel: 02 2399 3667 oppure 02 2399 3668Ricevimento: venerdì 10.30 – 12.30

Sito web del corso:http://www.elet.polimi.it/corsi/infoA

Slide mostrate durante l’esercitazioneRaccolte di eserciziDi regola, le slide saranno disponibili prima della lezione

Page 2: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

PolitecnicoPolitecnicodi Milanodi Milano

Numeri naturali (numeri senza segno)Numeri naturali (numeri senza segno)

Page 3: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 33 - -

Il sistema posizionaleIl sistema posizionale

L’idea del sistema posizionale: ogni cifra ha un pesoEsempio: 132 = 100 +30 +2Facciamo un passo indietro…Un numero generico di m cifre è rappresentato dalla sequenza di cifre: an, an-1, an-2,..., a0

an cifra più significativa, a0 cifra meno significativa n = m —1ai {0, 1, ..., p—1} insieme delle cifre utilizzabili

p è detto baseDi solito noi usiamo la base decimale (p=10)Esempio: 132

1, 3, 2

a2 =

a1 =

a0 =

m = 3

ai {0, 1, ..., 9}

Page 4: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 44 - -

Nel sistema posizionale, un numero naturale N, composto da m cifre, in base p, si esprime come:

Rappresentazione in base Rappresentazione in base pp

n

i

ii

nn

nnp papapapapaN

0

00

11

11 ...

Esempio in base decimale o base dieci (p=10):13210 = 1·102+3·101+2·100

Posso rappresentare i numeri nell’intervallo discreto: [0 , pm — 1] .

Page 5: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 55 - -

Base binaria o base due:p=2ai {0, 1} chiamate bit (binary digit)

Una sequenza di otto bit è detta byteEsempio, con m=5: 110112 = (1·24+1·23+0·22+1·21+1·20)10 = 2710

Converto dalla base 2 alla base 10Posso rappresentare i numeri nell’intervallo discreto: [0 , 2m —1]Esempio: con m=8, rappresento numeri binari: [000000002 , 111111112], ovvero [010 , 25510]28—1 = 255.

Rappresentazione in base dueRappresentazione in base due

Page 6: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 66 - -

Conversione base dieci Conversione base dieci base base duedue

Esempio, 1410:

14 : 2 = 7 resto = 07 : 2 = 3 resto = 13 : 2 = 1 resto = 11 : 2 = 0 resto = 1

1410 = 11102 .

Page 7: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 77 - -

SommaSomma

Le cifre sono 0 e 1; il riporto può essere solo 1

Riporto precedent

eSomma Risultato Riporto

0 0 + 0 0 0

00 + 11 + 0

1 0

0 1 + 1 0 1

1 0 + 0 1 0

10 + 11 + 0

0 1

1 1 + 1 1 1

Page 8: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 88 - -

Somma e carrySomma e carry

Esempio:

1 riporto0101 + (510)

1001 = (910)

------1110 (1410)

111 riporti 1111 + (1510)

1010 = (1010)

------- carry 11001 (2510 se uso 5 bit;

910 se considero 4 bit: errato) .

Page 9: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 99 - -

Base ottale (o base otto)Base ottale (o base otto)

p=8; ai {0, 1, 2, 3, 4, 5, 6, 7}Esempio: 2348 = (2·82+3·81+4·80)10 = 15610

Sapendo che 8 = 23: conversione binario ottaleEsempio: 1011111002

1012 = (122+021+120 )10 = 510 = 58

1112 = (122+121+120 )10 = 710 = 78

1002 = (122+021+020 )10 = 410 = 48

Quindi, 1011111002 = 5748

Sapendo che 8 = 23: conversione ottale binarioEsempio: 1268

18 = 110 = 0012

28 = 210 = 0102

68 = 610 = 1102

Quindi, 1268 = 0010101102 .

Page 10: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 1010 - -

Base esadecimale (o base Base esadecimale (o base sedici)sedici)

p=16; ai {0, 1, 2, …, 9, A, B, C, D, E, F}Esempio: B7F16 = (11·162+7·161+15·160)10 = 294310

“B” al posto di “11” e “F” al posto di “15” Sapendo che 16=24: Conversione binario esadecimale

Esempio: 1011111012 00012 = (023+022+021+120)10 = 110 = 116

01112 = (023+122+121+120)10 = 710 = 716

11012 = (123+122+021+120)10 = 1310 = D16

Quindi, 1011111012 = 17D16

Sapendo che 16=24: Conversione esadecimale binario

Esempio: A316

A16 = 1010 = 10102

316 = 310 = 00112

Quindi, A316 = 101000112 .

Page 11: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

PolitecnicoPolitecnicodi Milanodi Milano

Numeri interi (numeri con segno)Numeri interi (numeri con segno)

Page 12: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 1212 - -

Modulo e segnoModulo e segno

Non posso memorizzare il “segno”, uso una codifica

Uso un bit per memorizzare il segno: “1” significa numero negativo, “0” numero positivo. Esempio m=3:

Num. intero, base 10

Num. intero, base due, modulo e segno

–3 111

–2 110

–1 101

–0 100

+0 000

+1 001

+2 010

+3 011

?

Page 13: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 1313 - -

Usando m bit: (–N)CPL2 = (2m — N10)2

Esempio (m=3): (–N)CPL2 = (23 — N10)2

Complemento a due (CPLComplemento a due (CPL22))

Num. intero base 10

TrasformazioneNum. intero, base

2, CPL2, m=3

-4 8 – 4 = 4 410 = 100

-3 8 – 3 = 5 510 = 101

-2 8 – 2 = 6 610 = 110

-1 8 – 1 = 7 710 = 111

0 nessuna 010 = 000

1 nessuna 110 = 001

2 nessuna 210 = 010

3 nessuna 310 = 011

Page 14: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 1414 - -

Complemento a due (CPLComplemento a due (CPL22))

Posso rappresentare i numeri nell’intervallo discreto:[–2m—1 , 2m—1 — 1]

Asimmetria tra negativi e positivi Esempio (m=8): [–128, +127], perché –27 = –128 e 27—1 = +127

Tutti i numeri negativi cominciano con il bit più significativo posto a “1”, mentre tutti i positivi e lo zero iniziano con uno “0” .

Page 15: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 1515 - -

Calcolo pratico del CPLCalcolo pratico del CPL22

Se m, il numero di bit da utilizzare per memorizzare il numero intero, è conosciuto:

Il minimo numero negativo che potrò codificare sarà –2m—1, mentre il massimo numero positivo che potrò codificare sarà 2m—1 — 1Se ho N10 e N10 2m—1 — 1, lo codifico in base due così com’è, su m bit (aggiungendo cioè zeri a sinistra così da riempire tutti gli m bit disponibili)Se ho –N10 e –N10 –2m—1, uso la seguente “regola rapida”:

Parto dal numero positivo N10 e lo codifico in base due su m bit (aggiungo cioè zeri a sinistra così da riempire tutti gli m bit disponibili)Modifico ogni “0” in “1” ed ogni “1” in “0” (“complemento”)Sommo 1, usando le consuete regole dell’addizione binaria .

Page 16: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 1616 - -

Calcolo pratico del CPLCalcolo pratico del CPL22

Se m non è conosciuto, lo ricavo nel seguente modo:

Se ho numero positivo N10, prendo il minimo m tale che N10 2m—1 — 1

Se ho numero negativo –N10, prendo il minimo m tale che –N10 –2m—1

Quindi eseguo l’algoritmo illustrato nella slide precedente

Se devo codificare un intervallo [-N10 , +M10]:

Calcolo m’ per –N10

Calcolo m” per +M10

m = max (m’, m”) .

Page 17: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 1717 - -

Calcolo pratico del CPLCalcolo pratico del CPL22

Esempio: –210 con m=8 bit:210 = 000000102 111111012 +

12 = --------------- 111111102

Esempio: –510 con m=? bit:provo con m=2,3,4 e scopro che –5 –2(4—1), allora m=4; adesso codifico –5 con m=4 bit: 510 = 01012 10102 + 12 = --------- 10112 .

Page 18: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 1818 - -

Valore decimale di un numero in Valore decimale di un numero in CPLCPL22

Se il numero è positivo (bit più significativo posto a “0”), lo converto usando la solita sommatoriaSe il numero è negativo (bit più significativo posto a “1”), allora:

Calcolo il modulo del numero, ovvero applico ancora su di esso il CPL2

Considero il numero risultante N2 come un NATURALE (cioè come un numero senza segno, l’eventuale “1” iniziale non indica più il segno) e lo converto con la solita sommatoria. Ottengo N10

A questo punto, il numero decimale è –N10 .

Page 19: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 1919 - -

Valore decimale di un numero in Valore decimale di un numero in CPLCPL22

Esempio: 10000012 = ?

Numero negativoApplichiamo CPL2 e otteniamo: 01111112

Consideriamolo un naturale e convertiamolo usando la solita sommatoria: 01111112 = 6310

Allora 10000012 = –6310

Esempio: 01010012 = ?

Numero positivo Convertiamolo usando la solita sommatoria:01010012 = 4110

.

Page 20: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 2020 - -

Somma e sottrazione in CPLSomma e sottrazione in CPL22

Somma: come per i naturaliSottrazione: N1 — N2 = N1 + (–N2)CPL2

Carry:Il bit di carry non viene considerato!

Overflow:Se, sommando due interi di m bit dotati di segno concorde, ottengo un risultato di segno discorde (sempre considerando m bit), allora si ha un overflow (il risultato non è codificabile su m bit) e l’operazione è errataL’overflow non può verificarsi se gli operandi sono di segno discorde.

Page 21: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 2121 - -

Somma e sottrazione in CPLSomma e sottrazione in CPL22

Esempi (m=7 cioè da –6410 a +6310):

0000101 + (+510)1111000 = (–810)

---------1111101 (–310)

.

1111 riporti 1111011 + (-510) 0001000 = (+810)----------

carry 10000011 (butto via il carry)10000011 (+310)

Page 22: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 2222 - -

Somma e sottrazione in CPLSomma e sottrazione in CPL22

  11111 riporti 0111111 + (+6310) 0000010 = (+210) --------- 1000001 (–6310: è sbagliato; dovrebbe essere +6510)

Overflow: +6510 non è codificabile su 7 bit in CPL2 .

1 riporti 1000000 + (–6410) 1111000 = (–810) ----------carry 10111000 (butto via il carry)

0111000 (+5610: sbagliato; dovrebbe essere –7210)

Overflow: –7210 non è codificabile su 7 bit in CLP2

Page 23: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 2323 - -

I FlagI Flag

Insieme di “segnalatori”, calcolati dopo ogni istruzione:

Z (Zero). Vale “1” sse il risultato dell’addizione è zero; “0” altrimentiN (Negative). Vale “1” sse il risultato dell’addizione è negativo; “0” altrimentiC (Carry). Vale “1” sse l’addizione ha prodotto un carry; “0” altrimentiV (oVerflow). Vale “1” sse l’addizione ha prodotto un overflow; “0” altrimenti

Per esempio, nell’esercizio che aveva per risultato 10000012, avrei ottenuto: Z=0; N=1; C=0; V=1

I Flag sono usati da alcune istruzioni della macchina di Von Neumann .

Page 24: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 2424 - -

ConclusioneConclusione

Se si opera con numeri che si considerano naturali, si sta attenti al Flag di carry (C), se si opera con numeri che si considerano interi, si sta attenti al Flag di overflow (V)I Flag sono computati tutti, al termine di ogni istruzione (escluse le istruzioni di salto)Come fa a macchina di Von Neumann a sapere se sta operando su numeri naturali o interi? Semplicemente, NON LO SA! Le operazioni che la macchina esegue sono identiche in entrambi i casi, soltanto l’interpretazione dei risultati cambia .

Page 25: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

PolitecnicoPolitecnicodi Milanodi Milano

Numeri realiNumeri reali

Page 26: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 2626 - -

Parte frazionaria di un numeroParte frazionaria di un numero

Rappresentiamo la parte frazionaria di un numero realeIn base due, un numero frazionario N, composto da n cifre, si esprime come:

12

21

12 22...22ni

ii

nn aaaaN

Esprimo in realtà l’equivalente in base dieci Esempio con n=3: 0,1012 = (1·2-1+0·2-2+1·2-3)10 = 0,87510

Date n cifre in base p=2, posso rappresentare numeri nell’intervallo continuo: [02 , 0,111…12]

ovvero nell’equivalente in base dieci: [0 , 1—2—

n] è l’errore di approssimazione < max = 2—n .

Page 27: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 2727 - -

Parte frazionaria di un numeroParte frazionaria di un numero

Esempio, con n=8:Codifico i numeri [0,000000002 , 0,111111112] ovvero i numeri compresi in [0 , 1—2—8 = 0,99609375]max = 2—8 = 0,00390625 .

Page 28: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 2828 - -

Parte frazionaria di un numeroParte frazionaria di un numero

Per passare dalla base dieci alla base due.Esempio, convertiamo 0,2110 avendo n=6:

0,21 2 = 0,42 parte intera = 0 parte fraz. = 0,420,42 2 = 0,84 parte intera = 0 parte fraz. = 0,840,84 2 = 1,68 parte intera = 1 parte fraz. = 0,680,68 2 = 1,36 parte intera = 1 parte fraz. = 0,36 0,36 2 = 0,72 parte intera = 0 parte fraz. = 0,720,72 2 = 1,44 parte intera = 1 parte fraz. = 0,44

Termino quando ho utilizzato gli n bit a disposizionePrendo le parti intere, dalla prima all’ultimaAllora 0,2110 0,0011012

Riconvertendo: 0,0011012 = 0,20312510

=0,21—0,203125=0,006875; < max; (max=2—

6=0,015625).

Page 29: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 2929 - -

Virgola fissaVirgola fissa

Uso m bit e n bit per parte intera e frazionariaEsempio (m=8, n=6, tot. 14 bit): -123,2110

-12310 = 100001012

0,2110 0011012

-123,2110 10000101,0011012

Come scelgo m e n? Precisione costante lungo R:

0

R

Page 30: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 3030 - -

Virgola mobile (floating point)Virgola mobile (floating point)

Il numero è espresso come: r = m·bn

m e n sono in base p m: mantissa (numero frazionario con segno)b: base della notazione esponenziale (numero naturale)n: caratteristica (numero intero)Esempio (p=10, b=10): -331,6875 = –0,3316875103

m = –0,3316875 n = 3

Precisione variabile lungo R. Per es. con 5 cifre per m:

13212,4323 = 0,13212105 = 13212 (ho perso 0,4323)7,345312 = 0,73453101 = 7,3453 (ho perso 0,000012)

0

R

Page 31: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 3131 - -

Virgola mobile (floating point)Virgola mobile (floating point)

Mantissa (m):Codifico solo la parte a destra della virgolaCodifico il segno

m con segno (l1 bit) n (l2 bit)

l1 bit

Caratteristica (n):l2 bit

Page 32: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 3232 - -

Virgola mobile (floating point)Virgola mobile (floating point)

Quando la prima cifra a destra della virgola è diversa da zero, il numero in virgola mobile si dice normalizzatoEs. –0,3716875103 è normalizzato perché la prima cifra a destra della virgola è “3”La normalizzazione permette di avere, a parità di cifre usate per la mantissa, una maggiore precisione. Es. Uso l1=5 cifre per la mantissa:+45,6768 +0,45676102 +0,00456104

Ho perso 0,0008

Ho perso0,0768

Page 33: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

PolitecnicoPolitecnicodi Milanodi Milano

CaratteriCaratteri

Page 34: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 3434 - -

CaratteriCaratteri

Codifica numerica ASCII (American Standard Code for Information Interchange) utilizza 7 bit (estesa a 8 bit) L’ASCII codifica

I caratteri alfanumerici (lettere maiuscole e minuscole e numeri), compreso lo spazioI simboli (punteggiatura, @, ecc)Alcuni caratteri di controllo (TAB, LINEFEED, RETURN, BELL, ecc) .

Page 35: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 3535 - -

Tabella ASCII (parziale)Tabella ASCII (parziale)

DEC CAR DEC CAR DEC CAR DEC CAR

DEC CAR48 0

49 1

50 2

51 3

52 4

53 5

54 6

55 7

56 8

57 9

65 A

66 B

67 C

68 D

69 E

70 F

71 G

72 H

73 I

74 J 

75 K

76 L

77 M

78 N

79 O

80 P

81 Q

82 R

83 S

84 T

85 U

86 V

87 W

88 X

89 Y

90 Z

97 a

98 b

99 c

100 d

101 e

102 f

103 g

104 h

105 i

106 j 

107 k

108 l

109m110 n

111 o

112 p

113 q

114 r

115 s

116 t

117 u

118 v

119 w

120 x

121 y

122 z

Page 36: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 3636 - -

Tabella ASCIITabella ASCII

Anche le cifre numeriche sono codificateLe lettere sono in sequenza alfabeticaPer passare dal minuscolo al maiuscolo: Codicemaiuscolo = Codiceminuscolo – 3210

Alcuni caratteri sulla tastiera italiana:ALT-123=“{“ oppure SHIFT-ALTGR-[ALT-125=”}” oppure SHIFT-ALTGR-]ALT-126=”~”

Sul libro a pag. 403 si trova la tabella ASCII estesa .

Page 37: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

PolitecnicoPolitecnicodi Milanodi Milano

Algebra di BooleAlgebra di Booleee

circuiti logicicircuiti logici

Page 38: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 3838 - -

Algebra di BooleAlgebra di Boole

E’ basata su tre operatori: AND, OR, NOT Ogni formula può assumere solo due valori: “vero” o “falso”. Idem per le variabiliRappresentiamo “vero” con “1” e “falso” con “0”AND e OR sono operatori binari (come, per esempio, l’operatore somma “+” dell’algebra)NOT è un operatore unario (come, per esempio, l’operatore fattoriale “!” dell’algebra) .

Page 39: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 3939 - -

Operatori booleaniOperatori booleani

Tavole di verità:

A B A AND B

0 0 0

0 1 0

1 0 0

1 1 1

A B A OR B

0 0 0

0 1 1

1 0 1

1 1 1

A NOT A

0 1

1 0

Page 40: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 4040 - -

Operatori booleaniOperatori booleani

Gli operatori AND e OR godono delle seguenti proprietà:

Commutativa:A OR B = B OR AA AND B = B AND A

Distributiva di uno verso l’altro: A OR (B AND C) = (A OR B) AND (A OR C)A AND (B OR C) = (A AND B) OR (A AND C)

.

Page 41: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 4141 - -

Ancora operatori booleani: Ancora operatori booleani: XORXOR

Operatore XOR (OR esclusivo):

A XOR B = (NOT A AND B) OR (A AND NOT B).

A B A XOR B

0 0 0

0 1 1

1 0 1

1 1 0

Page 42: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 4242 - -

Espressioni booleaneEspressioni booleane

Regole di precedenza:NOT ha la massima precedenzapoi segue ANDinfine OR (e XOR)

Se voglio alterare queste precedenze devo usare le parentesi (a volte usate solo per maggior chiarezza)Per valutare un espressione booleana si usa la tabella della verità Espressioni booleane uguali: sse le tabelle della verità sono identiche.

Page 43: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 4343 - -

Dalla formula alla tabellaDalla formula alla tabella

Vediamo un esempio, per l’espressione:D = A AND NOT (B OR C)

A B C D = A AND NOT (B OR C)

0 0 0 0

0 0 1 0

0 1 0 0

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 0

Page 44: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 4444 - -

Dalla tabella alla formulaDalla tabella alla formula

Se conosco la tabella della verità, posso ricostruire la formula logica. Partiamo dalla tabella:

C1 = (NOT A AND B) OR (A AND NOT B) OR (A AND B) .

A B C1

0 0 0

0 1 1

1 0 1

1 1 1

NOT A AND BA AND NOT BA AND B

Page 45: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 4545 - -

Porte logichePorte logiche

Ogni operatore booleano (AND, OR, NOT) ha un equivalente elettronico:

Le porte AND e OR sono “operatori n-ari”:

C = A AND B

C = A OR B

C = NOT A

B

AC

B

AC A C

.

ABC

DA

BC

D D=A AND B AND C

Page 46: - 1 - Esercitazioni - Informatica A Roberto Tedesco E-mail: tedesco@elet.polimi.ittedesco@elet.polimi.it Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure

- - 4646 - -

Dalla formula al circuitoDalla formula al circuito

Esempio: C = NOT (NOT A AND NOT B)

.

C

B

A