La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

- 1 - Esercitazioni - Informatica A Roberto Tedesco Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure.

Presentazioni simili


Presentazione sul tema: "- 1 - Esercitazioni - Informatica A Roberto Tedesco Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure."— Transcript della presentazione:

1 - 1 - Esercitazioni - Informatica A Roberto Tedesco Ufficio: 103, 1° piano DEI Tel: oppure Ricevimento: venerdì – Sito web del corso: Slide mostrate durante lesercitazione Raccolte di esercizi Di regola, le slide saranno disponibili prima della lezione

2 Politecnico di Milano Numeri naturali (numeri senza segno)

3 - 3 - Il sistema posizionale Lidea del sistema posizionale: ogni cifra ha un peso Esempio: 132 = Facciamo un passo indietro… Un numero generico di m cifre è rappresentato dalla sequenza di cifre: a n, a n-1, a n-2,..., a 0 a n cifra più significativa, a 0 cifra meno significativa n = m 1 a i {0, 1,..., p1} insieme delle cifre utilizzabili p è detto base Di solito noi usiamo la base decimale (p=10) Esempio: 132 1, 3, 2 a 2 =a 1 =a 0 = m = 3 a i {0, 1,..., 9}

4 - 4 - Nel sistema posizionale, un numero naturale N, composto da m cifre, in base p, si esprime come: Rappresentazione in base p Esempio in base decimale o base dieci (p=10): = 1· · ·10 0 Posso rappresentare i numeri nellintervallo discreto: [0, p m 1].

5 - 5 - Base binaria o base due: p=2 a i {0, 1} chiamate bit (binary digit) Una sequenza di otto bit è detta byte Esempio, con m=5: = (1·2 4 +1·2 3 +0·2 2 +1·2 1 +1·2 0 ) 10 = Converto dalla base 2 alla base 10 Posso rappresentare i numeri nellintervallo discreto: [0, 2 m 1] Esempio: con m=8, rappresento numeri binari: [ , ], ovvero [0 10, ] 2 81 = 255. Rappresentazione in base due

6 - 6 - Conversione base dieci base due Esempio, : 14 : 2 = 7 resto = 0 7 : 2 = 3 resto = 1 3 : 2 = 1 resto = 1 1 : 2 = 0 resto = =

7 - 7 - Somma Le cifre sono 0 e 1; il riporto può essere solo 1 Riporto precedente SommaRisultatoRiporto

8 - 8 - Somma e carry Esempio: 1 riporto (5 10 ) 1001 = (9 10 ) (14 10 ) 111 riporti (15 10 ) 1010 = (10 10 ) carry (25 10 se uso 5 bit; 9 10 se considero 4 bit: errato).

9 - 9 - Base ottale (o base otto) p=8; a i {0, 1, 2, 3, 4, 5, 6, 7} Esempio: = (2·8 2 +3·8 1 +4·8 0 ) 10 = Sapendo che 8 = 2 3 : conversione binario ottale Esempio: = ( ) 10 = 5 10 = = ( ) 10 = 7 10 = = ( ) 10 = 4 10 = 4 8 Quindi, = Sapendo che 8 = 2 3 : conversione ottale binario Esempio: = 1 10 = = 2 10 = = 6 10 = Quindi, =

10 Base esadecimale (o base sedici) p=16; a i {0, 1, 2, …, 9, A, B, C, D, E, F} Esempio: B7F 16 = (11· · ·16 0 ) 10 = B al posto di 11 e F al posto di 15 Sapendo che 16=2 4 : Conversione binario esadecimale Esempio: = ( ) 10 = 1 10 = = ( ) 10 = 7 10 = = ( ) 10 = = D 16 Quindi, = 17D 16 Sapendo che 16=2 4 : Conversione esadecimale binario Esempio: A3 16 A 16 = = = 3 10 = Quindi, A3 16 =

11 Politecnico di Milano Numeri interi (numeri con segno)

12 Modulo 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 –3111 –2110 –1101 – ?

13 Usando m bit: (–N) CPL2 = (2 m N 10 ) 2 Esempio (m=3): (–N) CPL2 = (2 3 N 10 ) 2 Complemento a due (CPL 2 ) Num. intero base 10Trasformazione Num. intero, base 2, CPL 2, m=3 -48 – 4 = = – 3 = = – 2 = = – 1 = = 111 0nessuna0 10 = 000 1nessuna1 10 = 001 2nessuna2 10 = 010 3nessuna3 10 = 011

14 Complemento a due (CPL 2 ) Posso rappresentare i numeri nellintervallo discreto: [–2 m1, 2 m1 1] Asimmetria tra negativi e positivi Esempio (m=8): [–128, +127], perché –2 7 = –128 e 2 71 = +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.

15 Calcolo pratico del CPL 2 Se m, il numero di bit da utilizzare per memorizzare il numero intero, è conosciuto: Il minimo numero negativo che potrò codificare sarà –2 m1, mentre il massimo numero positivo che potrò codificare sarà 2 m1 1 Se ho N 10 e N 10 2 m1 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 –N 10 e –N 10 –2 m1, uso la seguente regola rapida: Parto dal numero positivo N 10 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 delladdizione binaria.

16 Calcolo pratico del CPL 2 Se m non è conosciuto, lo ricavo nel seguente modo: Se ho numero positivo N 10, prendo il minimo m tale che N 10 2 m1 1 Se ho numero negativo –N 10, prendo il minimo m tale che –N 10 –2 m1 Quindi eseguo lalgoritmo illustrato nella slide precedente Se devo codificare un intervallo [-N 10, +M 10 ]: Calcolo m per –N 10 Calcolo m per +M 10 m = max (m, m).

17 Calcolo pratico del CPL 2 Esempio: –2 10 con m=8 bit: 2 10 = = Esempio: –5 10 con m=? bit: provo con m=2,3,4 e scopro che –5 –2 (41), allora m=4; adesso codifico –5 con m=4 bit: 5 10 = =

18 Valore decimale di un numero in CPL 2 Se il numero è positivo (bit più significativo posto a 0), lo converto usando la solita sommatoria Se il numero è negativo (bit più significativo posto a 1), allora: Calcolo il modulo del numero, ovvero applico ancora su di esso il CPL 2 Considero il numero risultante N 2 come un NATURALE (cioè come un numero senza segno, leventuale 1 iniziale non indica più il segno) e lo converto con la solita sommatoria. Ottengo N 10 A questo punto, il numero decimale è –N 10.

19 Valore decimale di un numero in CPL 2 Esempio: = ? Numero negativo Applichiamo CPL 2 e otteniamo: Consideriamolo un naturale e convertiamolo usando la solita sommatoria: = Allora = –63 10 Esempio: = ? Numero positivo Convertiamolo usando la solita sommatoria: =

20 Somma e sottrazione in CPL 2 Somma: come per i naturali Sottrazione: N 1 N 2 = N 1 + (–N 2 ) 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 loperazione è errata Loverflow non può verificarsi se gli operandi sono di segno discorde.

21 Somma e sottrazione in CPL 2 Esempi (m=7 cioè da –64 10 a ): (+5 10 ) = (–8 10 ) (–3 10 ) riporti (-5 10 ) = (+8 10 ) carry (butto via il carry) (+3 10 )

22 Somma e sottrazione in CPL riporti ( ) = (+2 10 ) (–63 10 : è sbagliato; dovrebbe essere ) Overflow: non è codificabile su 7 bit in CPL 2. 1 riporti (–64 10 ) = (–8 10 ) carry (butto via il carry) ( : sbagliato; dovrebbe essere –72 10 ) Overflow: –72 10 non è codificabile su 7 bit in CLP 2

23 I Flag Insieme di segnalatori, calcolati dopo ogni istruzione: Z (Zero). Vale 1 sse il risultato delladdizione è zero; 0 altrimenti N (Negative). Vale 1 sse il risultato delladdizione è negativo; 0 altrimenti C (Carry). Vale 1 sse laddizione ha prodotto un carry; 0 altrimenti V (oVerflow). Vale 1 sse laddizione ha prodotto un overflow; 0 altrimenti Per esempio, nellesercizio che aveva per risultato , avrei ottenuto: Z=0; N=1; C=0; V=1 I Flag sono usati da alcune istruzioni della macchina di Von Neumann.

24 Conclusione 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 linterpretazione dei risultati cambia.

25 Politecnico di Milano Numeri reali

26 Parte frazionaria di un numero Rappresentiamo la parte frazionaria di un numero reale In base due, un numero frazionario N, composto da n cifre, si esprime come: Esprimo in realtà lequivalente in base dieci Esempio con n=3: 0,101 2 = (1· · ·2 -3 ) 10 = 0, Date n cifre in base p=2, posso rappresentare numeri nellintervallo continuo: [0 2, 0,111…1 2 ] ovvero nellequivalente in base dieci: [0, 12 n ] è lerrore di approssimazione < max = 2 n.

27 Parte frazionaria di un numero Esempio, con n=8: Codifico i numeri [0, , 0, ] ovvero i numeri compresi in [0, 128 = 0, ] max = 28 = 0,

28 Parte frazionaria di un numero Per passare dalla base dieci alla base due. Esempio, convertiamo 0,21 10 avendo n=6: 0,21 2 = 0,42 parte intera = 0parte fraz. = 0,42 0,42 2 = 0,84 parte intera = 0parte fraz. = 0,84 0,84 2 = 1,68 parte intera = 1parte fraz. = 0,68 0,68 2 = 1,36 parte intera = 1parte fraz. = 0,36 0,36 2 = 0,72 parte intera = 0parte fraz. = 0,72 0,72 2 = 1,44 parte intera = 1parte fraz. = 0,44 Termino quando ho utilizzato gli n bit a disposizione Prendo le parti intere, dalla prima allultima Allora 0, , Riconvertendo: 0, = 0, =0,210,203125=0,006875; < max ; ( max =2 6 =0,015625).

29 Virgola fissa Uso m bit e n bit per parte intera e frazionaria Esempio (m=8, n=6, tot. 14 bit): -123, = , , , Come scelgo m e n? Precisione costante lungo R: 0 R

30 Virgola mobile (floating point) Il numero è espresso come: r = m·b n 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, m = –0, n = 3 Precisione variabile lungo R. Per es. con 5 cifre per m: 13212,4323 = 0, = (ho perso 0,4323) 7, = 0, = 7,3453 (ho perso 0,000012) 0 R

31 Virgola mobile (floating point) Mantissa (m): Codifico solo la parte a destra della virgola Codifico il segno m con segno (l 1 bit)n (l 2 bit) l 1 bit Caratteristica (n): l 2 bit

32 Virgola mobile (floating point) Quando la prima cifra a destra della virgola è diversa da zero, il numero in virgola mobile si dice normalizzato Es. –0, è 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 l 1 =5 cifre per la mantissa: +45, , , Ho perso 0,0008 Ho perso 0,0768

33 Politecnico di Milano Caratteri

34 Caratteri Codifica numerica ASCII (American Standard Code for Information Interchange) utilizza 7 bit (estesa a 8 bit) LASCII codifica I caratteri alfanumerici (lettere maiuscole e minuscole e numeri), compreso lo spazio I simboli ecc) Alcuni caratteri di controllo (TAB, LINEFEED, RETURN, BELL, ecc).

35 Tabella ASCII (parziale) DEC CAR A 66B 67C 68D 69E 70F 71G 72H 73I 74J 75K 76L 77M 78N 79O 80P 81Q 82R 83S 84T 85U 86V 87W 88X 89Y 90Z 97a 98b 99c 100d 101e 102f 103g 104h 105i 106j 107k 108l 109m 110n 111o 112p 113q 114r 115s 116t 117u 118v 119w 120x 121y 122z

36 Tabella ASCII Anche le cifre numeriche sono codificate Le lettere sono in sequenza alfabetica Per passare dal minuscolo al maiuscolo: Codice maiuscolo = Codice minuscolo – 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.

37 Politecnico di Milano Algebra di Boole e circuiti logici

38 Algebra di Boole E basata su tre operatori: AND, OR, NOT Ogni formula può assumere solo due valori: vero o falso. Idem per le variabili Rappresentiamo vero con 1 e falso con 0 AND e OR sono operatori binari (come, per esempio, loperatore somma + dellalgebra) NOT è un operatore unario (come, per esempio, loperatore fattoriale ! dellalgebra).

39 Operatori booleani Tavole di verità: ABA AND B ABA OR B ANOT A 01 10

40 Operatori booleani Gli operatori AND e OR godono delle seguenti proprietà: Commutativa: A OR B = B OR A A AND B = B AND A Distributiva di uno verso laltro: A OR (B AND C) = (A OR B) AND (A OR C) A AND (B OR C) = (A AND B) OR (A AND C).

41 Ancora operatori booleani: XOR Operatore XOR (OR esclusivo): A XOR B = (NOT A AND B) OR (A AND NOT B). ABA XOR B

42 Espressioni booleane Regole di precedenza: NOT ha la massima precedenza poi segue AND infine 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.

43 Dalla formula alla tabella Vediamo un esempio, per lespressione: D = A AND NOT (B OR C) ABC D = A AND NOT (B OR C)

44 Dalla tabella alla formula Se conosco la tabella della verità, posso ricostruire la formula logica. Partiamo dalla tabella: C 1 = (NOT A AND B) OR (A AND NOT B) OR (A AND B). ABC1C NOT A AND B A AND NOT B A AND B

45 Porte logiche Ogni operatore booleano (AND, OR, NOT) ha un equivalente elettronico: Le porte AND e OR sono operatori n-ari: C = A AND BC = A OR BC = NOT A B A C B A C AC. A B C D A B C DD=A AND B AND C

46 Dalla formula al circuito Esempio: C = NOT (NOT A AND NOT B).


Scaricare ppt "- 1 - Esercitazioni - Informatica A Roberto Tedesco Ufficio: 103, 1° piano DEI Tel: 02 2399 3667 oppure."

Presentazioni simili


Annunci Google