27
Rappresentazioni Rappresentazioni numeriche numeriche A. Ferrari A. Ferrari

Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

Embed Size (px)

Citation preview

Page 1: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

Rappresentazioni Rappresentazioni numerichenumeriche

A. FerrariA. Ferrari

Page 2: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

AritmeticaAritmeticaDei numeri binariDei numeri binari

Page 3: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

Numeri binariNumeri binari

Page 4: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri 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.

Page 5: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

Somma: esempioSomma: esempio

Page 6: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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.

Page 7: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

Sottrazione: Sottrazione: esempioesempio

Page 8: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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.

Page 9: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

Moltiplicazione: Moltiplicazione: esempioesempio

Page 10: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

EsempiEsempi

Page 11: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

EsadecimaleEsadecimaleOttaleOttale

Page 12: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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

Page 13: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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

Page 14: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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

Page 15: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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

Page 16: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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

Page 17: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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.

Page 18: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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

Page 19: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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

Page 20: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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

Page 21: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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

Page 22: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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

Page 23: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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.

Page 24: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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

Page 25: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

Valori massimi e Valori massimi e minimiminimi

Page 26: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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

Page 27: Rappresentazioni numeriche A. Ferrari. Aritmetica Dei numeri binari

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