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