3 LA CODIFICA DEI NUMERI

3 LA CODIFICA DEI NUMERI

La rappresentazione dei numeri interi senza segno

Quando scriviamo un numero in base 10 o in base 2, solitamente annotiamo solo le cifre necessarie. Per esempio il numero binario 1012 viene scritto utilizzando solo tre cifre.

I calcolatori funzionano in modo diverso: le informazioni, nel caso specifico i numeri, vengono sempre rappresentate utilizzando un numero fisso di bit, che normalmente è un multiplo di un byte (8 bit, 16 bit, 32 bit), stabilito a priori.

Come sappiamo, la memoria di un computer è rappresentabile con una sequenza di celle ognuna della dimensione di un byte. La cella può essere vista anche come una sequenza di bit, cioè una successione di “caselline”, ciascuna delle quali può contenere solamente uno 0 o un 1.

Pertanto non è corretto pensare che per scrivere in una memoria il numero 1012 siano sufficienti tre cifre e quindi vengano riservati tre bit.

Questo avrebbe senso per un computer ideale, ma i computer reali devono tenere conto, del fatto che la dimensione minima di una cella indirizzabile è un byte. All’informazione numerica viene quindi riservato uno spazio (per esempio 1 byte) prima ancora di conoscere quale numero verrà effettivamente memorizzato. Al momento dell’inserimento del numero intero senza segno (per esempio 1012) il byte viene completato inserendo, se necessario, degli 0 a sinistra delle cifre che identificano il numero da memorizzare.

Lo sapevi che

Nella matematica tradizionale gli zeri prima di un numero intero (per esempoi 01) vengono omessi e prendono il nome di leading zero, che si traduce con “zero che sta all’inizio”. E adesso chi lo diche a James Bond?

  ApprofondiMENTO
MSB E LSB

Poiché il sistema di numerazione utilizzato dai computer è di tipo posizionale, il bit più a sinistra nel byte prende il nome di msb (Most Significant Bit) e rappresenta la cifra più significativa del numero. Il bit più a destra del byte, invece, prende il nome di lsb (Least Significant Bit) e rappresenta la cifra meno significativa.

 >> pagina 70

La problematica dell’overflow

Riservare lo spazio in memoria a priori, impone un limite massimo ai numeri rappresentabili con un numero finito di bit. Con 1 byte il minimo numero intero senza segno rappresentabile è 000000002 (cioè 010) mentre il massimo numero intero senza segno rappresentabile è 111111112 (cioè 25510).

Si verifica quindi un’annosa problematica: quella dell’  overflow.


esempio

Sommiamo 12 al numero massimo rappresentabile con un byte, cioè 111111112.


12 12 12 12 12 12 12 12
1 1 1 1 1 1 1 12 +
12 =
1 0 0 0 0 0 0 0 02


Il risultato matematico corretto, nell’esempio, necessiterebbe di una cifra in più che però nel computer non è disponibile. L’ultimo riporto a sinistra non ha una “casellina” (bit) dove poter essere scritto. Di conseguenza viene perso e si verifica un overflow: all’interno del byte viene scritto un risultato sbagliato (nell’esempio proposto viene scritto 0). In ogni caso, nei calcolatori il numero di bit disponibili è prefissato e l’overflow non ha una soluzione: quando si verifica occorre fare in modo che il computer possa accorgersi dell’errore e lo possa segnalare.

L’overflow può verificarsi anche con le altre operazioni aritmetiche.

  SCHEDA CLIL
wh47’5 1337 5p34k?

Leet speak is a language born on the web with the goal to transform messages into unrecognizable writings. Inside a leet phrase, many characters are replaced with numbers or symbols that esthetically look like the replaced letters.

For example, the character “E” can be replaced by “3” whereas “M” can be replaced by a sequence of slashes and backslashes “/\/\”.

Leet words are comprehensible for humans with little effort, and so they represent a valid method to create complex passwords, easy to be remembered, even if, as the method is known, it’s not to be considered too safe.

The expression leet speak comes from the abbreviation of  élite speak and it refers to the fact that using this form of writing makes the difference between who is able to write in this way and who is not.

  Challenge yourself!

Can you read this message?


7H15 M3554G3

53RV35 7O PR0V3

H0W 0UR M1ND5 C4N

D0 4M4Z1NG 7H1NG5!

1MPR3551V3 7H1NG5!

1N 7H3 B3G1NN1NG

17 WA5 H4RD BU7

N0W, 0N 7H15 LIN3

Y0UR M1ND 1S

R34D1NG 17 AU70M471C4LLY

W17H0U7 3V3N

7H1NK1NG 4B0U7 17,

B3 PROUD! 0NLY

C3R741N P30PL3 C4N

R3AD 7H15!

Clic!
Clic!
Tecnologie informatiche per il primo biennio