Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame I.4 Rappresentazione dell’informazione Numeri con segno Elisabetta Ronchieri Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 20, 2015 Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Argomenti 1 Introduzione 2 Rappresentazione in modulo e segno 3 Rappresentazione in complemento alla base 4 Esercizi e possibili domande d’esame Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame I numeri con segno Il segno dei numeri può essere solo di due tipi: 1 2 positivo (+) negativo (-) Riservare 1 bit al segno sembra essere la soluzione più semplice, ma non è detto sia la più conveniente. Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Numeri con segno Per rappresentare numeri con segno si possono usare tre tecniche di codifica: 1 2 3 modulo e segno complemento a 1 complemento a 2 Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Rappresentazione di numeri interi Notifica Range di valori Posizionale Modulo e segno Complemento a 2 [0, 2n − 1] [−(2n−1 − 1), 2n−1 − 1] [−2n−1 , 2n−1 − 1] Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Rappresentazione in modulo e segno Gestisce in modo completamente separato il segno dal modulo. Antepone al modulo di un numero un simbolo che denota se esso è positivo o negativo. Su n cifre: usa la prima cifra più significativa (MSD) per esprimere il segno; usa le restanti n − 1 cifre per rappresentare il modulo o valore assoluto. Con n cifre a disposizione, l’intervallo dei numeri rappresentabili è [−(B n−1 − 1), B n−1 − 1]. Nel caso di B=2 e n=16, l’intervallo è [−(215 − 1), 215 − 1]. Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Rappresentazione in modulo e segno In base 2 è convenzione esprimere la cifra del segno con 0 se il numero è positivo; 1 se il numero è negativo. Con 3 bit si rappresentano i numeri fra −(22 − 1) = −3 e +(22 − 1) = +3: 000 +0, 100 -0 001 +1, 101 -1 010 +2, 110 -2 011 +3, 111 -3 Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Esempi di conversione di base Problema: convertire (−15)10 in base 2. Modulo: |15| = 15 = (1111)2 ; Segno negativo: 1; Conversione da base 10 a base 2: (−15)10 = (11111)2 . Fissato la cifra del segno, le altre si ottengono usando il metodo delle divisioni successive per la base 2. Problema: convertire (10000101)2 in base 10. Modulo: (0000101)2 = (5)10 ; Segno negativo: 1; Conversione da base 2 a base 10: (10000101)2 = (−5)10 . Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Svantaggi Ripete lo zero 2 volte: su 8 cifre in base 2, -0 = 10000000; su 8 cifre in base 2, +0 = 00000000. Non permette di usare gli algoritmi noti per le operazioni aritmetiche. Non è vero che X + (−X ) = 0. Infatti: In base 10: +5 + (-5) = 0 In base 2: 00000101 + 10000101 = 10001010 = (−10)10 Richiede circuiti aritmetici più complicati, quindi un minor utilizzo. Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Operazioni in modulo e segno Dati i numeri (0010)2 = (+2)10 e (0011)2 = (+3)10 , calcolare la somma. I numeri sono positivi, si applicano le regole dell’addizione alle prime tre cifre ottenendo (101)2 = (+5)10 Dati i numeri (1001)2 = (−1)10 e (1110)2 = (−6)10 , calcolare la somma. I numeri sono negativi, si applicano le regole dell’addizione alle prime tre cifre ottenendo (1111)2 = (−7)10 Dati i numeri (0010)2 = (+2)10 e (1110)2 = (−6)10 , calcolare la sottrazione. I numeri sono di segno diverso, si applicano le regole della sottrazione alle prime tre cifre ottenendo (1100)2 = (−4)10 Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Rappresentazione in complemento a 1 Dato un numero binario di n bit, il complemento a 1 o complemento di un numero A è la quantità: Ā = 2n − 1 − A Regola pratica: Il complemento a 1 di un numero binario A si ottiene cambiando il valore a tutti i suoi bit. Esempio: A = 1011 risulta Ā = 0100 Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Rappresentazione in complemento a 2 Dato un numero binario di n bit, il complemento a 2 di un numero A è la quantità: ¯ = 2n − A Ā MSG indica il segno: 0=+, 1=Se MSB è 0, lascia il numero positivo invariato. Se MSB è 1, segue la procedura di complementazione. Regola pratica: Il complemento a 2 di un numero binario A si ottiene sommando uno al suo complemento a 1. Esempio: ¯ = 0101 A = 1011 risulta Ā = 0100 che risulta Ā Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Rappresentazione in complemento a 2 I numeri positivi sono rappresentati in modulo e segno. I numeri negativi sono rappresentati in complemento a due. Lo 0 ha una sola rappresentazione, quindi maggiore semplicità. Regola pratica alternativa: Si parte da destra, si lasciano inalterati tutti gli zeri fino al primo uno che si lascia inalterato, si complementano tutti gli altri bit. Esempio: A = 001101001000 risulta A = 110010111000 Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Rappresentazione in complemento alla base Con n cifre a disposizione, l’intervallo dei numeri rappresentabili è [−2n−1 , 2n−1 − 1]. Se b=2 e n=16, l’intervallo rappresentato è [−215 , 215 − 1] Con n cifre a disposizione, il numero più piccolo rappresentabile è −2n−1 . Con n cifre a disposizione, il numero più grande rappresentabile è −2n−1 − 1. L’intervallo dei valori rispetto alla codifica in modulo e segno è più grande comprendendo il valore −2n−1 . La conversione in P base 10 segue la formula: v = −cn−1 2n−1 + kk =n−2 ck 2k =0 Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Rappresentazione in complemento a 2 Con 3 bit si rappresentano i numeri fra −(22 ) = −4 e +(22 − 1) = +3: 000 +0, 100 -4 001 +1, 101 -3 010 +2, 110 -2 011 +3, 111 -1 Si osserva che 011 = +3, 100 = −4 Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Esempio di conversione di base Convertire il numero (11110001)2 in base 10. le cifre n: 8; il 7 bit: vale -128; dalla formula nella slide 14: 11110001 = −128 + (64 + 32 + 16 + 1) = −15. Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Esempi di conversione di base Numero v 11110001 01110001 10000000 11111111 00000000 01111111 00000101 -128 + (64 + 32 + 16 + 1) = -15 64 + 32 + 16 + 1 = 113 -128 + 0 = -128 -128 + (64 + 32 + 16 + 8 + 4 + 2 + 1) = -1 0 64 + 32 + 16 + 8 + 4 + 2 + 1 = 127 4+1=5 Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Rappresentazione in complemento a 2 Utilizza direttamente gli algoritmi dei numeri naturali per le operazioni. È vera X + (−X ) = 0. Il numero negativo sommato ad un numero positivo fornisce la differenza: X − Y = X + (−Y in complemento a due); Non è completamente posizionale come da formula nella slide 14. Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Operazioni in complemento a due Dati due numeri -5 e 3, calcolare la somma. Rappresentare -5 in base 2 su 8 cifre: -128 + 123 = (11111011)2 ; Rappresentare +3 in base 2 su 8 cifre; Calcolare l’operazione di somma; Riconvertire il numero (11111110)2 in base 10: (11111110)2 = -128 + 126 = -2. Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Operazioni in complemento a due Dati due numeri -1 e -5, calcolare la somma. Rappresentare -1 in base 2 su 8 cifre: -128 + 127 = (11111111)2 ; Rappresentare -5 in base 2 su 8 cifre: -128 + 123 = (11111011)2 ; Calcolare l’operazione di somma; Riconvertire il numero (111111010)2 in base 10: (111111110)2 = -128 + 122 = -6. Si osserva la presenza del riporto. Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Overflow L’overflow si ha quando il risultato di una operazione non è rappresentabile correttamente su n cifre. Esempio 1: +14 + (+10) = 24 01110 + 01010 = 11000paria(−8)10 Esempio 2: -8 + (-10) = -18 11000 + 10110 = 101110paria(+14)10 C’è overflow: se c’è riporto al di fuori del bit di segno e non sul bit di segno; o se c’è riporto sul bit di segno ma non al di fuori. Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Overflow Per evitare l’overflow occorre aumentare il numero di bit utilizzati per rappresentare gli operandi. Nel caso di operandi con segno discorde non si può mai verificare overflow. Nel caso di operandi con segno concorde c’è overflow quando il risultato ha segno discorde da quello dei due operandi. Si trascura sempre il riporto oltre il MSB. Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Esercizi sulla conversione di base in modulo e segno Effettuare la verifica di uguaglianza: con 8 cifre: (01101001)2 = (+105)10 (11101001)2 = (−105)10 (01001001)2 = (+73)10 (11001001)2 = (−73)10 con 4 cifre: (1101)2 = (−5)10 (0101)2 = (+5)10 (0111)2 = (+7)10 Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Esercizi Si determini, se esiste, la base B di un sistema di numerazione tale che (842)B = (1202)10 . Svolgimento: partendo da 8B 2 + 4B + 2 = 1202 dopo un pò di facchinaggio algebrico, risolvere la seguente equazione di secondo grado B 2 + 21 B − 150 = 0 Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Esercizi Si determini, se esiste, la base B ≤ 16 di un sistema di numerazione tale che (725)B − (626)B = (224)10 . Svolgimento: partendo da 7B 2 + 2B + 5 − (6B 2 + 2B + 6) = 224 dopo un pò di facchinaggio algebrico, risolvere la seguente equazione di secondo grado B 2 − 225 = 0 Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Possibili domande d’esame 1 Si determini, se esiste, la base B di un sistema di numerazione tale che (842)B = (1202)10 (a) (b) (c) (d) (e) 15 10 8 12 14 Elisabetta Ronchieri I Concetti Base Introduzione Rappresentazione in modulo e segno Rappresentazione in complemento alla base Esercizi e possibili domande d’esame Possibili domande d’esame 2 Si determini, se esiste, la base B ≤ 16 di un sistema di numerazione tale che (725)B − (626)B = (224)10 (a) (b) (c) (d) (e) 15 10 8 12 14 Elisabetta Ronchieri I Concetti Base