Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari.

Post on 01-May-2015

220 views 2 download

Transcript of Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari.

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