• Non ci sono risultati.

I numeri interi in un elaboratore

N/A
N/A
Protected

Academic year: 2021

Condividi "I numeri interi in un elaboratore"

Copied!
3
0
0

Testo completo

(1)

1

I numeri interi in un elaboratore

Tutte le informazioni presenti in un computer, si sa, sono serie di zeri e uni. Vediamo come sono rappresentati i numeri interi.

La prima cosa che ci viene in mente è usare la base 2. Vediamo se funziona. Per semplificarci la vita supponiamo di avere a disposizione 4 bit. Quanti numeri possiamo rappresentare? Semplice! 16 (24), bene! Possiamo rappresentare tutti i numeri da 0 a 15.

Con i soli numeri positivi, però, non possiamo fare molto. Ci servirebbero anche gli interi negativi.

Allora possiamo pensare di usare un bit per il segno. Diciamo che il bit più significativo (quello più a sinistra) è il segno. Stabiliamo anche che valga 0 per gli interi positivi e 1 per quelli negativi.

Quali numeri possiamo rappresentare?

POSITIVI NEGATIVI

DECIMALE BINARIO DECIMALE BINARIO

0 0000 0 1000

1 0001 -1 1001

2 0010 -2 1010

3 0011 -3 1011

4 0100 -4 1100

5 0101 -5 1101

6 0110 -6 1110

7 0111 -7 1111

La prima cosa che notiamo e che non va bene è lo zero: poiché non esiste -0 in questo sistema lo zero può essere rappresentato in due modi diversi. Questo non è accettabile. Ma c’è un altro problema più grave. La somma di un numero e del suo opposto deve essere zero.

Vediamo, invece, cosa succede con il sistema di rappresentazione che abbiamo scelto. Sommiamo, ad esempio +5 e -5:

0 1 0 1 1 1 0 1

= 0 0 1 0

Il risultato è 2. Non va per niente bene. Dobbiamo trovare un altro sistema.

Manteniamo la regola che i numeri positivi iniziano con 0 e quelli negativi con 1 e proviamo ad usare il complemento a 1: ogni numero negativo si ottiene dal suo opposto scambiando gli zeri con gli uni.

POSITIVI NEGATIVI

DECIMALE BINARIO DECIMALE BINARIO

0 0000

1 0001 -1 1110

2 0010 -2 1101

3 0011 -3 1100

4 0100 -4 1011

5 0101 -5 1010

6 0110 -6 1001

7 0111 -7 1000

-8 1111

(2)

2 Ci avanza un codice: l’opposto dello zero cioè 1111. Possiamo usarlo per rappresentare -8, sarebbe un peccato sprecarlo!

Va meglio: il problema della doppia rappresentazione dello zero è stato risolto. Proviamo a fare la somma di due numeri opposti? Ad esempio sommiamo +4 e -4:

0 1 0 0 1 0 1 1

= 1 1 1 1 Il risultato è -8. Non funziona nemmeno così.

Dobbiamo risolvere il problema della somma degli opposti. Consideriamo la nostra rappresentazione dei numeri positivi e facciamoci una domanda: dato un numero positivo quale numero bisogna sommare per ottenere 0?

Nel nostro elaboratore i numeri interi sono di 4 bit. Consideriamo, ad esempio il 3 (0011), quale numero bisogna sommare a 0011 per ottenere 0000? Facendo i conti si trova che il numero cercato vale 1101. In realtà la somma è 10000 ma abbiamo a disposizione 4 bit e, quindi dobbiamo ignorare il bit più a sinistra.

Creiamo quindi la nostra codifica procedendo nello stesso modo per tutti i numeri che possiamo rappresentare. Otterremo la seguente tabella:

POSITIVI NEGATIVI

DECIMALE BINARIO DECIMALE BINARIO

0 0000

1 0001 -1 1111

2 0010 -2 1110

3 0011 -3 1101

4 0100 -4 1100

5 0101 -5 1011

6 0110 -6 1010

7 0111 -7 1001

-8 1000

I numeri interi in un elaboratore si rappresentano così. Questo sistema si chiama complemento a due: per trovare il negativo di un numero scambiamo gli uni con gli zeri ed aggiungiamo 1.

In questo modo riconosciamo i numeri negativi perché iniziano per 1.

Conversione da binario a decimale

Convertiamo il numero 110011 in decimale:

Si tratta di un numero negativo quindi bobbiamo prima fare il complemento a 2.

1. Scambiamo gli 1 con gli 0: 001100 2. Sommiamo 1: 001101

3. Convertiamo in decimale

(001101)2 = 1 ∙ 20+ 0 ∙ 21+ 1 ∙ 22+ 1 ∙ 23+ 0 ∙ 24+ 0 ∙ 25 = 1 + 4 + 8 = 13 4. Cambiamo segno: -13

Conversione da decimale a binario

Convertiamo il numero -524 in binario.

Per trovare le cifre dobbiamo effettuare divisioni successive per 2 e considerare il resto fino a quando la divisione non dà come risultato 0.

(3)

3

524:2 262 resto 0

262:2 131 resto 0

131:2 65 resto 1

65:2 32 resto 1

32:2 16 resto 0

16:2 8 resto 0

8:2 4 resto 0

4:2 2 resto 0

2:2 1 resto 0

1:2 0 resto 1

Adesso dobbiamo prendere i numeri dall’ultima divisione alla prima e aggiungere uno zero a sinistra (il bit di segno). Quindi:

(524)10= (01000001100)2 Adesso facciamo il complemento a due.

Scambiamo gli 1 e gli 0: 10111110011 Aggiungiamo 1: 10111110100

Ma allora:

(−524)10= (10111110100)2

Quanto spazio occupano i numeri interi in memoria?

Nel nostro esempio con 4 bit abbiamo rappresentato 16 numeri interi da -8 a 7. Ma 16=24. In generale con n bit possiamo rappresentare 2n numeri interi di cui 2n-1 negativi e 2n-1-1 positivi.

Ad esempio con 16 bit possiamo rappresentare 216 numeri di cui 215 negativi e 215-1 positivi. Quindi possiamo rappresentare tutti i numeri interi compresi tra -32768 a 32767.

Questo file può essere scaricato gratuitamente. Se pubblicato citare la fonte.

Matilde Consales

Riferimenti

Documenti correlati

Quest'opera è stata rilasciata con licenza Creative Commons:. Attribuzione - Non commerciale - Non opere derivate

PER ADDIZIONE ALGEBRICA ( O SOMMA ALGEBRICA) SI INTENDE L’OPERAZIONE CHE PRENDE IN CONSIDERAZIONE SIA LA SOMMA CHE LA DIFFERENZA. NB: OGNI NUMERO INTERO PUO’ ESSERE

L’insieme dei numeri naturali è un sottoinsieme di quello dei numeri interi, cioè: C I numeri razionali sono numeri scritti sotto forma di frazione, oppure numeri

Nelle attività introduttive abbiamo incontrato alcune situazioni nelle quali i numeri naturali non sono più sufficienti. Essi formano l’insieme dei numeri interi relativi

[r]

Una funzione si dice discontinua se esiste almeno un punto del suo dominio dove la funzione non ` e continua.. Tipiche funzioni discontinue sono le funzioni che presentano dei

Scelti su una retta un primo ed un diverso secondo punto, l’identificazione del numero 0 col primo punto e del numero 1 col secondo punto si estende in modo naturale ad

Archimede (III secolo AC; misure di lunghezze, aree, volumi) Newton, Leibniz (XVII secolo; cinematica, meccanica.). Cauchy (IXX