Operazioni aritmetiche nel sistema binario
Operazioni aritmetiche basilari Le regole da imparare nel caso di una base b sono relative alle b 2 possibili combinazioni delle cifre da 0 a b- 1. Ad esempio, considerando la somma in base 10, si tratta di 100 regole: 0+0=? 0+1=? 0+2=? 9+7=? 9+8=? 9+9=? Tali regole si riducono a 4 soltanto nella base 2.
Un vantaggio della base 2 Semplificazione portata dalla base 2: a parità di significato (valore) un numero scritto in base 2 è molto più lungo dell'equivalente scritto in base 10, ma le regole per poi eseguire le operazioni sono di gran lunga più semplici. Nel caso dell'elaboratore questo è essenziale; infatti, la velocità permette di non preoccuparsi eccessivamente della lunghezza dei numeri, mentre le regole relative alle operazioni su coppie di cifre sono legate alla circuiteria elettronica che le deve eseguire.
Addizione binaria L algoritmo dell operazione di addizione o somma non cambia qualunque sia la base considerata. Le proprietà della somma (associativa, commutativa, distributiva, ) si mantengono. Le 4 regole di somma in base 2: 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 con riporto 1
Esempi di addizione binaria Esempio: o a = 11 2 = 3 10 o b = 1000 2 = 8 10 o a + b = 11 2 + 1000 2 = 1011 2 o Verifica in base 10: con divisioni successive 1011 2 = 11 10 Esempio: o a = 11011 2 = 27 10 o b = 00110 2 = 6 10 o a + b = 11011 2 + 00110 2 = 100001 2 o Verifica in base 10: con divisioni successive 100001 2 = 33 10
Overflow In ogni calcolatore viene utilizzato un numero fissato di bit per rappresentare i numeri sia interi che reali. E' possibile, effettuando operazioni con numeri rappresentati da n bit, ottenere un numero non rappresentabile con n bit. Se il numero è troppo grande si parla di overflow (o trabocco). La condizione di overflow si ha quando il risultato di un calcolo intero è un numero che in binario occupa più bit di quelli a disposizione, di conseguenza ne viene troncata la parte più significativa generando un risultato errato.
Esempio di overflow 71 10 e 60 10 sono due interi in base 10 entrambi rappresentabili su 7 bit in forma binaria. trascuriamo al momento il bit di segno La somma (71 + 60) 10 = 131 10 però non è rappresentabile con lo stesso numero di bit. Infatti troncando il risultato a 7 bit, si ottiene [1]0000011 2 = 3 10 La stessa operazione, eseguita su 8 bit, non avrebbe provocato overflow.
Sottrazione binaria L algoritmo dell operazione di sottrazione o differenza non cambia qualunque sia la base considerata. Le proprietà della sottrazione in base 10 si mantengono. Le 4 regole di sottrazione in base 2: 0-0 = 0 1-1 = 0 1-0 = 1 0-1 = 1 con prestito di 1
Esempio di sottrazione binaria Ipotesi: risultato della sottrazione non negativo Ancora non sappiamo rappresentare valori negativi Esempio: o a = 1101 2 =13 10 o b = 101 2 =5 10 o a - b = 1101 2 101 2 = 1000 2 o Verifica in base 10: con divisioni successive 1000 2 = 8 10
Moltiplicazione binaria L algoritmo dell operazione di moltiplicazione o prodotto non cambia qualunque sia la base considerata. Le 4 regole di moltiplicazione in base 2: 0 x 0 = 0 1 x 0 = 0 0 x 1 = 0 1 x 1 = 1 In altri termini: il prodotto per zero dà sempre come risultato zero; il prodotto per 1 dà sempre come risultato il numero stesso.
Esempio di moltiplicazione binaria a = 1011 2 = 11 10 b = 1101 2 = 13 10 a x b = 1011 2 x 1101 2 = 10001111 2 = 143 10 1011 x 1101 = 1011 + 00000 + 101100 + 1011000 = 10001111
Divisione binaria L algoritmo dell operazione di divisione non cambia qualunque sia la base considerata. La classica domanda quante volte il dividendo sta in una certa parte del divisore, può solo avere due risposte: 0, non ci sta in quanto è più grande oppure 1, ci sta perché è più piccolo.
Esempio di divisione binaria a = 10010110 2 = 150 10 b = 1100 2 = 12 10 a : b = 10010110 2 : 1100 2 = 1100 2 = 12 10 con resto 110 2 = 6 10 Procedimento: 10010110 : 1100 = 1100 1101 10 100 o Calcolo dei resti: I passaggio: 10010 1100 = 110 II passaggio: 1101 1100 = 1