Rappresentazioni numeriche A. Ferrari
Aritmetica Dei numeri binari
Numeri binari
Somma Per sommare due numeri binari, si devono addizionarne a due a due le cifre corrispondenti. Se si ottiene 102 occorre riportare uno nella colonna successiva.
Somma: esempio
Sottrazione Per sottrarre due numeri si devono sottrarre a due a due le cifre corrispondenti, ricordando che nel caso si abbia 02 – 12 occorre “prendere in prestito” dalla cifra precedente.
Sottrazione: esempio
Moltiplicazione Per moltiplicare due numeri binari occorre considerare la tabella moltiplicativa. L’algoritmo per moltiplicare due numeri binari è poi identico a quello della moltiplicazione decimale: si moltiplica il primo numero per le singole cifre del secondo i prodotti parziali così ottenuti devono essere quindi sommati tra loro dopo averli spostati di una cifra a sinistra.
Moltiplicazione: esempio
Esempi
Esadecimale Ottale
Ottale - esadecimale Oltre alla numerazione binaria vengono talvolta utilizzate anche le numerazioni in base 8 (ottale) e 16 (esadecimale). Per la numerazione esadecimale sono necessarie 16 cifre: alle usuali 10 cifre arabe si aggiungono anche le prime 6 lettere maiuscole dell’alfabeto A = 10 ; B = 11 ; C = 12 ; D = 13 ; E = 14 ; F = 15
Base 2 - 8- 16 Binario Esadecimale 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1 2 3 4 5 6 7 8 9 A B C D E F Binario Ottale 000 001 010 011 100 101 110 111 1 2 3 4 5 6 7
Conversione binario-ottale Dato un numero in base binaria, per convertirlo in base ottale basta raccogliere le cifre a gruppi di tre e sostituire questi ultimi con il loro corrispondente ottale
Conversione binario-esadecimale Per passare dalla base 2 alla base 16, si esegue il raccoglimento a gruppi di quattro cifre
Byte - semibyte l contenuto di un byte può̀ essere facilmente espresso con due cifre esadecimali suddividendolo in due semibyte di quattro bit
Rappresentazione dei numeri interi Per rappresentare un numero intero nella memoria degli elaboratori viene riservato uno spazio determinato che può̀ essere trattato con un’unica operazione. Tale spazio, indicato con il termine parola (traduzione letterale dell’inglese word), ha una grandez- za costante e prefissata. Per semplicità̀ faremo esempi con parole di due byte di lunghezza.
Segno e modulo Il primo bit (bit del segno) indica se il numero è positivo o negativo Se il bit di segno vale: 1 allora il numero memorizzato è negativo 0 allora il numero memorizzato è positivo o nullo. I bit successivi forniscono la rappresentazione del valore assoluto del numero
Segno e modulo Nell'esempio utilizziamo per semplicità una rappresentazione con 3 bit (il primo per il segno e i restanti 2 per il modulo) 000 +0 001 +1 010 +2 011 +3 100 -0 101 -1 110 -2 111 -3
Valori rappresentabili Se si utilizzano due byte (16 bit) e si utilizza la rappresentazione in segno e modulo Il primo bit rappresenta il segno Rimangono 15 bit per rappresentare il valore assoluto del numero Risultano quindi rappresentabili tutti i numeri interi compresi fra + 215 -1 cioè +32767 - 215 -1 cioè -32767
Overflow Il termine overflow (traboccamento) indica che il volume di una sostanza eccede il volume del contenitore Nel nostro caso incorriamo in overflow se vogliamo rappresentare valori superiori a +32767 in quanto vengono persi i bit più significativi Attenzione che può essere interessato anche il bit di segno
Esempio overflow Nell’esempio (rappresentazione a 8 bit) la somma di due numeri produce overflow
Complemento a 2 Per i numeri relativi, una rappresentazione alternativa a quella di segno e modulo è la rappresentazione in complemento a 2 si rappresenta in binario il numero come se fosse positivo si “invertono” tutte le cifre del numero trasformando gli 0 in 1 e viceversa (complemento a uno); si aggiunge 1.
Numero -123 123 1 compl. 1 + = compl. 2
Valori massimi e minimi
Esempio Nell'esempio utilizziamo 3 bit Possiamo rappresentare i valori da -22 a +22-1 Esiste una sola rappresentazione per il numero 0 000 +0 001 +1 010 +2 011 +3 100 -4 101 -3 110 -2 111 -1
Somma in complemento a 2 0 0 1 0 + (+2) 1 0 1 1 = (-5) 1 1 0 1 (-3) 0 1 1 1 + (+7) 0 0 1 0 (+2) 000 +0 001 +1 010 +2 011 +3 100 -4 101 -3 110 -2 111 -1