Sei sulla pagina 1di 19

Ing. Gabriele MONTI 1999 2010 Numeri www.ingmonti.

it
1 Rappresentazione dell'informazione e aritmetica dei calcolatori
Per poter parlare di computer dobbiamo per prima coa parlare di numeri.
!ueto perc"# ogni computer $ un itema numerico e dicreto% c"e la&ora olo con numeri c"e "anno un numero 'inito
di ci're. (n computer $ perci) un itema *numerico* o *digitale*.
!ualun+ue 'orma abbiano gli ingrei c"e proponiamo ad un computer% ei de&ono eere in +ualc"e modo tra'ormati
in numeri per poter eere elaborati. ,nalogamente% anc"e e otteniamo i riultati otto +ualiai 'orma% il *cuore* del
computer li "a prodotti come numeri% c"e ono tati uccei&amente tra'ormati.
1.1 Rappresentazioni dei numeri
Parlando di numeri dobbiamo an-itutto ditinguere 'ra *l.een-a* di un numero e la ua *crittura*. (n numero $ un.en/
tit0 matematica atratta% c"e "a la ua origine nell.opera-ione del contare e c"e eite indipendentemente da come noi lo
&ediamo o lo cri&iamo.
(n numero pu) eere *rappreentato* motrando le dita di una mano% pronunciandone il *nome* in una lingua parlata%
cri&endolo ulla carta econdo una ben precia nota-ione% +uale +uella romana% araba% occidentale moderna% o anc"e
cri&endolo nelle memorie elettronic"e di un computer. !ualun+ue ia la rappreenta-ione c"e diamo di un numero% il
numero in # rimarr0 empre lo teo.
1111TO2O111
Figura 1: rappresentazioni di un numero
Ogni di&era rappreenta-ione dei numeri "a i uoi propri procedimenti per i calcoli aritmetici% cio$ per 'are la omma%
la di&iione e le altre opera-ioni. 3"iamiamo *algoritmi* +ueti procedimenti% a&&ertendo del 'atto c"e in eguito &edre/
mo una de'ini-ione rigoroa e pi4 eteni&a del concetto.
Il pi4 grande &antaggio della nota-ione occidentale moderna% comune anc"e a +uelle indiana e araba c"e l."anno ipira/
ta% $ il 'atto c"e gli algoritmi c"e i de&ono uare per eeguire i calcoli aritmetici ono molto emplici% come abbiamo
imparato nella cuola elementare.
5a nota-ione occidentale moderna 'a uo di dieci ci're% non a cao tante +uante le dita delle mani% e per +ueto &iene det/
ta *nota-ione decimale*.
Ogni ci'ra "a un uo &alore% 'ra -ero e no&e% un numero $ compoto da una o pi4 ci're ed in eo una ci'ra $ pi4 o meno
*importante* delle altre c"e ono nello teo numero% in 'un-ione della poi-ione occupata.
5e ci're c"e tanno a initra ono pi4 importanti di +uelle c"e tanno a detra. 5a notra rappreenta-ione dei numeri $
perci) di tipo *poi-ionale*.
6igura 27 ci're e numeri
Notazione posizionale
(na nota-ione posizionale $ una rappreenta-ione dei numeri c"e d0 alle ci're in ei contenute di&era importan-a in
dipenden-a dal poto c"e occupano.
Prendiamo un numero ad eempio e dicutiamo come &iene critto% poi ne trarremo delle indica-ioni generali. 8upponia/
mo di cegliere il numero 22. ,&endo tutti 'atto le elementari% appiamo c"e il due pi4 a initra non $ uguale a +uello di
detra ma $ dieci &olte pi4 *peante*% poiamo cio$ cri&ere +ueta uguaglian-a7 22 9 20 : 2% c"e ancora non ci dice
molto. ;icri&iamo il tutto in +ueto modo7 22 9 2 < 10 : 2 < 1% lo copo di +ueta complica-ione &err0 pi4 c"iaro 'ra un
momento.
Prendiamo un altro numero% un po. pi4 complicato7 12=>?. Innan-itutto diciamo c"e l.uno di +ueto numero &iene detto
*cifra pi significativa* @mot igni'icant digit% o le'tmot digitA% mentre il cin+ue $ la *cifra meno significativa* @leat
igni'icant digit o rig"tmot digitA.
Poi cri&iamo% analogamente a prima7 12=>? 9 1 < 10000 : 2 < 1000 : = < 100 : > < 10 : ? < 1. Notiamo c"e il &alore
della ci'ra &iene moltiplicato per un 'attore% c"e poiamo c"iamare *peo*% c"e% come ci apetta&amo% $ tanto pi4 gran/
de +uanto pi4 +uella ci'ra ta a initra nel numero.
Ma *di +uanto* il peo $ pi4 grandeB 8e pro&iamo a ricri&ere la tea epreione in un altro modo la coa do&rebbe ri/
ultare c"iara7
12=>? 9 1 < 10
>
: 2 < 10
=
: = < 10
2
: > < 10
1
: ? < 10
0
8cri&endo il numero in +ueto modo di&enta c"iaro c"e il peo di ogni ci'ra $ una poten-a di dieci c"e dipende dal poto
della ci'ra all.interno del numero. 8e la ci'ra $ alla detra di tutti +uella poten-a $ -ero% ed aumenta di uno ogni &olta c"e
01 6ondamenti.odt Cer. 0.9.> 2011/11/2? p. 1 di 19
Ing. Gabriele MONTI www.ingmonti.it
i &a di una ci'ra pi4 a initra @non ci dobbiamo tupire% i tratta olo di un modo di&ero di cri&ere il concetto di unit0%
decine% centinaia% migliaia% decine di migliaia%..A.
A questo punto ci vogliamo staccare dai nostri simboli. Se supponiamo che gli alieni sul pianeta Ork abbiano dieci dita come
noi, e che rappresentino le cifre come in questa tabella:
Parola su Terra(talia! Parola su Terra(".#.! $ifra su Terra (talia! $ifra su Ork ("luk!
%ero %ero &

'no One (
.
)ue T*o +

Tre Three ,

-uattro .our /
_
$inque .ive 0

Sei Si1 2
:
Sette Seven 3
l
Otto 4ight 5

6ove 6ine 7

Tabella 1: cifre su pianeti diversi
Allora il numero 8gluckiano8 :l_ sarebbe, se scritto in talia: :l_ 9 2 : (&
0
; + : (&
/
; 3 : (&
,
; 0 : (&
+
; , : (&
(
; / : (&
&
9 2+30,/
8e gli uomini non a&eero a&uto dieci dita% a&rebbero potuto in&entare lo teo una nota-ione poi-ionale per i
numeriB 5a ripota $ en-.altro D @tan.$ &ero c"e lo "anno 'atto e''etti&amenteA% ma probabilmente l.a&rebbero in&entata
con una *bae* di&era. 5a base di una nota-ione poi-ionale $ il numero di imboli di&eri c"e ea comprende. Gli uo/
mini a&e&ano a dipoi-ione 'acilmente dieci imboli di&eri% c"e erano le dita. Tutti abbiamo cominciato a contare con
le dita @io lo 'accio tuttoraA ed eitono e ono ancora uati in 3ina algoritmi di calcolo c"e permettono di e''ettuare le
opera-ioni ulle dita% memori--ando i riultati intermedi con un complicato gioco di 'alangi.
,l giorno d.oggi gli uomini uano numeri in bae 10% in bae 2% in bae 1E e% pi4 raramente% in bae F. In paato i erano
uate bai di&ere% i babilonei% per eempio% a&e&ano una nota-ione poi-ionale% a bae E0% dalla +uale origina il notro
modo di miurare il tempo e gli angoli.
I numeri in bae 10 &engono detti numeri *decimali*.
Per ditinguere i numeri in una certa bae da numeri in un.altra bae in +ueto capitolo cri&eremo la bae a pedice.
Per eempio F2
10
9 1010010
2
9 122
F
9 ?2
1E
. Il igni'icato degli uguali in +uet.ultima epreione do&rebbe di&enire c"ia/
ro 'ra poco. 8e non i mette la bae a pedice di olito i conidera c"e il numero ia decimale.
Facciamo notare fin da ora che i linguaggi di programmazione hanno convenzioni diverse da quella appena
illustrata per indicare in quale base sono rappresentati i numeri. Per acquisire consuetudine spieghiamo sin
da subito qual la notazione usata nel linguaggio Assembly. Un numero si pu riconoscere perch inizia con
una cifra decimale. a base utilizzata si riconosce perch alla fine del numero! senza spazi in mezzo! c" una
lettera che la indica. #e il numero termina con la lettera b a base $ %&binario&! p.es. '(('('b)! se termina
con h a base '* %&he+adecimal&! p.es. (F'(,h)! se termina con d! oppure se alla fine del numero non c"
nessuna lettera! il numero considerato decimale %p.es. $-! oppure $-d). .n linguaggio /! e nei suoi molti de0
rivati! i numeri decimali sono scritti normalmente! mentre quelli esadecimali sono preceduti dai caratteri (+
%p.es. (+1FA il numero FA'*). .n 2A#./ i numeri esadecimali sono preceduti dai caratteri 34 e terminati
con una 3 %p.es. 341FA3).
Rappresentazione binaria (base 2)
Per ragioni pratic"e ed economic"e i computer ono in grado di rappreentare i numeri olo con due imboli @i potrebbe
dire c"e "anno olo due dita ..A. 3i) a&&iene perc"# i computer poono elaborare i numeri 'acendo uo di dipoiti&i
elettronici detti *tranitor*% c"e i poono 'acilmente 'ar commutare 'ra due tati7 condu-ione o non condu-ione @*ac/
ceo* o *pento*A. Per +uanto ia poibile mantenere i tranitor in pi4 di due tati% uarne olo due $ molto pi4 a''idabi/
le e emplice% perci) pi4 economico. G. con tranitor c"e i reali--ano tutti i computer e le loro memorie. 3i) igni'ica
c"e i mattoni 'ondamentali con i +uali $ cotruito un computer 'un-ionano in modo *o tutto o niente*.
Per rappreentare i numeri un computer de&e perci) uare una nota-ione in bae due.
I numeri critti in bae due &engono anc"e detti numeri *binari*.
p. 2 di 19 2011/11/2? 01 6ondamenti.odt
Ing. Gabriele MONTI 1999 2010 Numeri www.ingmonti.it
(na ci'ra in un numero binario &iene detta bit% c"e $ l.unione delle due parole *BinarH digit* @ci'ra binariaA% ma c"e in
Inglee igni'ica anc"e *un poc"ino*. G. un buon nome% dato c"e il bit $ la minima +uantit0 di in'orma-ione immaginabi/
le% tant.$ &ero c"e &iene uato come anc"e unit0 di miura dell.in'orma-ione.
I imboli uati per cri&ere un numero binario poono eere olo dueI i potrebbe uare *8pento* o *O''* per lo -ero%
*,cceo* o *On* per l.uno% ma la maggior parte delle &olte i prende come imbolo per lo -ero il egno *0* e come im/
bolo per l.uno il egno *1*.
8e uiamo +uet.ultima con&en-ione il numero 101101 potrebbe eere un numero binario. Per ditinguerlo da un nume/
ro decimale% come abbiamo gi0 &ito% ci dobbiamo mettere un 2 a pedice% coD7 101101
2
.
8e abbiamo olo due imboli come poiamo rappreentare tutti i numeriB Pro&iamo a contare e &ediamo di in&entare un
modo. Per i numeri -ero e uno abbiamo gi0 i imboli% +uindi -ero 9 0 e uno 9 1. Il primo problema orge +uando dob/
biamo rappreentare il due7 non abbiamo pi4 imboli.
,llora 'acciamo in bae due la tea coa c"e 'aremmo in bae 10% cio$ mettiamo uno -ero nella ci'ra meno igni'icati/
&a e *riportiamo* un uno nella ci'ra accanto. !uindi % e in decimale da *9* i paa a *10*% in binario da *1* i paa a
*10
2
*. Perci) il numero binario due $7 due 9 2
10
9 10
2
. 5a coneguen-a $ c"e 1
2
: 1
2
9 10
2
.
!ueta omma non $ per nulla trana perc"# i de&e leggere7 uno pi4 uno uguale *uno-ero* oppure uguale due @uno-ero
$ pur empre il numero due% anc"e e critto in modo di&ero1A.
Il numero uccei&o $ tre e de&e eere due pi4 uno. 2obbiamo emplicemente aggiungere 1 alla ci'ra meno igni'icati/
&a di 10
2
% perci) otteniamo 11
2
. Tre 9 = 9 11
2
.
, +ueto punto e &ogliamo aggiungere 1 non abbiamo pi4 imboli% dobbiamo *riportare*% pro&iamo a mettere in colon/
na7
;ip. 1 ;ip. 1
1 1 :
1 9
1 0 0
Cediamo c"e nella econda colonna c.$ uno pi4 uno del riporto per cui% dato c"e 1
2
: 1
2
9 10
2
% il riporto i propaga alla
ter-a colonna da detra e ci cotringe ad aggiungere un nuo&o bit a initra del numero. Perci) > 9 100
2
.
3ontinuando ad aggiungere uno i ottengono i numeri binari riportati nella relati&a colonna nella Tabella >% ulla +uale
coniglio di pendere ora un po. di tempo a penare.
3ontinuando il conteggio il *riporto* de&e a&&enire ogni 2 numeri e i propaga 'ino in 'ondo% cotringendo ad aggiunge/
re un bit ogni &olta c"e il numero raddoppia @&edere p.e. la tabella in corriponden-a ai numeri decimali 2% >% F% 1EA.
Oer&ando i &alori binari nelle rig"e appena citate &ediamo c"e un uno nella ci'ra meno igni'icati&a &ale 1% mentre
nella econda ci'ra meno igni'icati&a &ale 2% nella ter-a +uattro% nella +uarta otto% e coD &ia. 5a poi-ione di ogni bit
*pea* dun+ue la poten-a di due relati&a% cominciando a contare dalla poten-a -ero ed aumentando di uno ogni &olta an/
dando &ero initra. ,llora i pu) cri&ere una 'ormula analoga a +uella critta per i numeri decimali% nella +uale appare
la bae due al poto di dieci% in tutti i punti o&e i ele&a a poten-a. (ando come eempio il numero 101010
2
i "a7
101010
2
9 0 < 2
0
: 1 < 2
1
: 0 < 2
2
: 1 < 2
=
: 0 < 2
>
: 1 < 2
?
9 2
10
: F
10
: =2
10
9 >2
10
(n numero di E bit *tutti uno* arebbe in&ece coD7
111111
2
9 1 < 2
0
: 1 < 2
1
: 1 < 2
2
: 1 < 2
=
: 1 < 2
>
: 1 < 2
?
9 1 : 2 : > : F : 1E : =2 9 E=
10
8i noti come il numero 'atto con *tutti uno* ia il pi4 grande c"e i pu) a&ere con un certo numero di bitI l.aggiunta di
un.ulteriore unit0 ad un i''atto numero d0 una poten-a di due% c"e "a un bit in pi4 del numero precedente ed $ compoto
di un 1 come ci'ra pi4 igni'icati&a e di tutti -ero alla ua detra.
8egue una tabella dei pei dei bit in un numero binario da 1J ci're @bit da 0 a 1EA% c"e $ con&eniente imparare *a memo/
ria* dal bit meno igni'icati&o almeno 'ino all.undiceimo bit @bit di *eponente* 10A7
n. del bit 1E 1? 1> 1= 12 11 10 9 F J E ? > = 2 1 0
Peo E??=E =2JEF 1E=F> F192 >09E 20>F 102> ?12 2?E 12F E> =2 1E F > 2 1
Tabella 2: potenze di due
"enerali<<ando a tutte le basi ed usando una nota<ione che piace tanto ai matematici:
ove la grande lettera greca Sigma significa 8sommatoria8, cio= la somma di tutti gli elementi indicati, n$ifre)el6umero = il
numero di cifre di cui il numero = composto.
01 6ondamenti.odt Cer. 0.9.> 2011/11/2? p. = di 19
.. < < < < <
>
>
=
2
1
1
0
0
1
0
+ + + + = =

Base Cifra Base Cifra Base Cifra Base Cifra Base Cifra Numero
umero nCifreDelN
i
i
Ing. Gabriele MONTI www.ingmonti.it
Rappresentazione ottale (base 8)
8arebbe uper'luo dirlo% ma i numeri ottali "anno otto imboli.
Per comodit0 i imboli c"e i uano per cri&ere un numero ottale ono lo -ero e le prime J ci're *normali*. Naturalmen/
te il numero in bae otto andr0 *a riportare* la prima &olta +uando i giunge al numero otto c"e ar0 +uindi 107 F
10
9 10
F
.
2opo la prima &olta% ci ar0 un riporto ad ogni multiplo di F% come i pu) &edere nella Tabella >.
Oggi $ abbatan-a raro utili--are numeri in bae F.
a base otto stata usata in passato! quando esistevano computer che avevano registri a parallelismo '$. .n
questo caso la base - utile per la facilit5 di conversione con i numeri binari! che si possono dividere in ,
gruppi di 1 bit %, 6 1 7 '$ bit).
Rappresentazione esadecimale (base 16)
5a nota-ione binaria "a lo &antaggio di ric"iedere molte ci're% anc"e per numeri non eccei&amente grandi. Per eem/
pio% per rappreentare il numero =2JJ0 ci &ogliono 1E bit. 8e i ua la bae 1E @numeri eadecimaliA il numero c"e i
cri&e "a +uattro &olte meno ci're del numero binario corripondente. 2ato c"e la con&erione 'ra numeri binari ed ea/
decimali $ 'aciliima e i 'a a mente% peo% +uando $ comodo cri&ere tutti i bit di un numero binario grande% i ua al
uo poto la ua nota-ione eadecimale.
8iccome nella bae eadecimale dobbiamo a&ere 1E imboli% per i primi 10 iamo gi0 a poto7 ueremo le normali ci're
numeric"e da 0 a 9. Per gli altri E imboli la con&en-ione uata uni&eralmente $ di utili--are le lettere da , ad 6. In
+ueto cao +ueti imboli al'abetici &engono ad aumere il igni'icato di ci're numeric"e.
Il &alore delle ci're in nota-ione eadecimale $ +uindi +uello della eguente tabella7
8imbolo 0 1 2 = > ? E J F 9 , K 3 2 G 6
Calore della ci'ra 0 1 2 = > ? E J F 9 10 11 12 1= 1> 1?
Tabella 3: cifre esadecimali
8egue una tabella c"e motra come i ueguono i numeri nelle di&ere bai. In ea i poono &edere le analogie e le
di''eren-e 'ra i &ari itemi di numera-ione% appre--are i &antaggi e gli &antaggi di ciacuno e dedurre alcune propriet0.
In particolare c.$ da notare coa uccede +uando 'inicono i imboli e c.$ un *riporto* c"e i aggiunge alla ci'ra uccei/
&a e +uando aumentano le ci're del numero.
6umero binario 6umero ottale 6umero decimale 6umero esadecimale
& & & &
( ( ( (
(&
+
+ + +
((
+
, , ,
(&&
+
/ / /
(&(
+
0 0 0
((&
+
2 2 2
(((
+
3 3 3
(&&&
+
(&
5
5 5
(&&(
+
((
5
7 7
(&(&
+
(+
5
(& A
(2
(&((
+
(,
5
(( #
(2
((&&
+
(/
5
(+ $
(2
((&(
+
(0
5
(, )
(2
(((&
+
(2
5
(/ 4
(2
((((
+
(3
5
(0 .
(2
(&&&&
+
+&
5
(2 (&
(2
Tabella 4: successione dei primi 16 numeri nelle diverse basi
,ltre bai
>a?a, popola<ione precolombiana dell@America centrale, rappresentavano i numeri in nota<ione posi<ionale a base +&. 6ei
documenti cerimoniali e nelle in epigrafi i simboli erano venti tipi di facce umane diverse. Per i calcoli correnti, che svolgevaA
no con algoritmi simili ai nostri e per certi aspetti anche piB pratici, essi usavano invece una nota<ione molto semplice, comA
posta di punti e linee (8fagioli8 e 8stecchetti8!. 'na linea valeva cinque, un punto uno. l numero veniva scritto verticalmente,
con la cifra meno significativa in basso.
p. > di 19 2011/11/2? 01 6ondamenti.odt
Ing. Gabriele MONTI 1999 2010 Numeri www.ingmonti.it
Ca nota<ione dei >a?a era posi<ionale, ma aveva un peso minore sulla
ter<a cifra meno significativa, che invece di +&
+
arrivava a (7
+
. -uesto
significa che la seconda cifra non veniva mandata fino a (7, ma solo
fino a (5. $on questo 8trucco8 il numero ,2(, che aveva per loro un
grande significato per via del calendario, era un numero 8tondo8, cio=
aveva le due cifre meno significative nulle (ma?a(, ma?a&, ma?a& 9
&:+&
&
; & : +&
(
; ( : (7
+
9 ,7( !. Ca ter<a cifra meno significativa di
un numero >a?a indicava perciD, almeno approssimativamente, il nuA
mero degli anni
(
.
.igura ,: cifre >a?a
GTG,T,GG33,3TT,3GG,, ..
5a bae > $ molto uata in natura. Il 2N, codi'ica in'orma-ioni c"e er&ono nella intei delle proteine% con le +uali
ono *cotruiti* tutti gli eeri &i&enti. 5e itru-ioni bioc"imic"e c"e determinano le caratteritic"e di ogni eere &i&en/
te ono memori--ate in una e+uen-a di ole +uattro bai
2
7 Adenina% Timina% itoina e !uanina% c"e i ueguono una
dopo l.altra% nella lunga elica del 2N,.
In +ueto eno il 2N, $ un numero a bae +uattro% dato c"e $ una e+uen-a di *imboli* ciacuno dei +uali pu) au/
mere olo +uattro &alori @,% T 3 o GA. G. intereante penare c"e ogni batterio ed ogni uomo ono in ultima analii un
numero% anc"e e con un grande numero di ci're1
Il 2N, della piccola moca *2roop"ila Melanogater*% *mappato* completamente% "a 120 milioni di *imboli*. 8i pu)
dire c"e $ un numero a bae +uattro di 120 milioni di ci're. Il 2N, dell.uomo "a circa = miliardi di *ci're* e &iene
*mappato* nel progetto *genoma umano*.
Un numero finito di cifre
In un computer do&r0 eerci almeno un tranitor per ogni bit di ogni numero c"e i &uole rappreentare. 2ato c"e u di
un circuito elettronico non i poono reali--are un numero in'inito di tranitor% ogni numero c"e un computer pu) trat/
tare de&e a&ere neceariamente un numero 'inito di ci're.
5.aritmetica di un computer $ dun+ue *'inita*. Per tutte le opera-ioni i "a a dipoi-ione un numero di ci're limitato%
grande +uanto i pu) @dipende da +uanto i &uole *pendere*A% ma non in'inito. 3i) &uol dire c"e i computer non memo/
ri--ano eattamente i numeri irra-ionali come per eempio la radice +uadrata di 2 od i numeri c"e riultano periodici in
bae 2.
Per &iuali--are la coa poiamo penare alle ci're del contac"ilometri di un motorino. 8e continuiamo a &iaggiare% pri/
ma o poi le ci're 'iniranno ed il numero ricomincer0 da -ero. In +ueto cao ul contac"ilometri non a&remo pi4 il nume/
ro giuto di c"ilometri percori.
5o teo accade e continuiamo ad aggiungere +ualcoa ad un regitro o ad una loca-ione di memoria di un computer.
Cerr0 il momento in cui il riultato *non ci ta pi4*I allora il numero *ricomincia daccapo*. Naturalmente e ci) accade
il numero memori--ato non $ il riultato corretto dell.opera-ione di omma.
,&endo a dipoi-ione un numero 'inito di ci're "a eno c"iederi +uanti numeri poiamo rappreentare con i bit di cui
diponiamo.
!uanti numeri con n bitB
Guardiamo la colonna *Numero binario* della Tabella > e poniamo l.atten-ione a +uando il numero aumenta di una ci/
'ra. !ueto uccede in corriponden-a di 2% >% F e 1E% cio$ delle poten-e di 2.
5e poten-e di due "anno dun+ue tutti -eri a detra di un unico uno. I numeri c"e li precedono ono 'atti tutti di 1 e ono i
numeri pi4 grandi c"e i poono 'are con +uel numero di bit.
2un+ue il numero pi4 grande c"e i pu) 'are con n bit $ +uello $ +uello prima di +uando catta l.aumento di ci're.
Per cui il numero maimo c"e i pu) rappreentare a&endo a dipoi-ione nKit bit $7
!uanti numeri i poono rappreentareB 8iccome c.$ anc"e lo -ero ei ono 2
nKit
.
!uanti bit per 'are un numeroB
Cediamo ora come i riol&e il problema contrario. Cogliamo apere con +uanti bit i de&e rappreentare un numero
+ualiai.
Prendiamo il cao del maimo numero rappreentabile% nell.e+ua-ione precedente e riol&iamo per nKit7
1 &a da $ c"e il numero precedente del =E1% il =E0% non era compoto di ci're tutte al maimo @=E0 9 maHa1F% maHa0 9 0<20
0
: 1F<20
1
9 =E0 A
2 nel eno *c"imico* della parola% cio$ il contrario di *acidi*.
01 6ondamenti.odt Cer. 0.9.> 2011/11/2? p. ? di 19
nMax = 2
nBit
1
Ing. Gabriele MONTI www.ingmonti.it
c"e di&enta% paando ambo i membri al logaritmo bae 27
8e conideriamo un numero +ualiai% n% e non il pi4 grande nMaL% poiamo empre 'are il logaritmo bae 2% per) poi
do&remo arrotondare per ecceo7
2o&e Int8up $ la parte intera uperiore del numero 'ra-ionario c"e "a come argomento. In intei7 aggiungiamo 1 al nu/
mero n% ne 'acciamo il logaritmo bae 2% arrotondiamo all.intero uccei&o% e abbiamo ottenuto il numero di bit c"e ci
er&ono.
8e il riultato del logaritmo $ intero +ueto igni'ica c"e il numero $ una poten-a di due% cio$ il numero con il +uale *a&/
&iene il riporto* @uno in pi4 di nMaLA e biogna aggiungere un bit. In +ueto cao perci) biogna aggiungere uno al ri/
ultato del logaritmo.
Cediamo tre eempi7
?11 /M log
2
@?11A 9 F%99J1J9>F09=F 9M ci &ogliono 9 bit
?12 /M log
2
@?12A 9 9 9M ci &ogliono 10 bit
?1= /M log
2
@?1=A 9 9%002F1?01?E0J 9M ci &ogliono 10 bit
Domanda: Come si fa a fare il logaritmo base 2 con una calcolatrice che ha solo i loga-
ritmi base 10 e/o quelli base e (naturali)?
Si usa questa roriet! dei logaritmi:
Che nel nostro caso di"enta :
#ntrambe le formule sono estensibili a tutte le altre basi semlicemente cambiando il 2
con la base desiderata$
(.(.( kappa, mega, giga
Nel gergo in'ormatico $ in&alo l.uo di pre'ii per indicare le +uantit0 di memoria% ed anc"e di altre unit0 *in'ormati/
c"e*% come per eempio la &elocit0 di tramiione nelle reti di computer. !ueto uo% comodo ed elegante come +uello
dei pre'ii del 8itema Interna-ionale delle unit0 di miura% $ per) ambiguo e 'uor&iante% per +uanto eita una olu-io/
ne recente ma molto poco uata.
2un+ue% in In'ormatica% i intende&a
=
per *N* un pre'io c"e 'a moltiplicare per 2
10
9 102> l.unit0 c"e &eni&a critta di
eguito. Il nome N deri&a dal 'atto c"e 102> $ *&icino* al 'attore 1000% c"e "a pre'io N @NiloA nel 8itema Interna-iona/
le.
Gempio7 una 3P( c"e abbia un ,ddre bu di parallelimo 10 bit potrebbe indiri--are al maimo 1 NKHte di memo/
riaI il microproceore E?02% uato nel 3ommodore E>% a&e&a 1E bit d.indiri--o% per cui la memoria maima c"e pote&a
indiri--are era di E> NKHte e% 'ra l.altro% diede il nome al computer.
,lla tea tregua i intende&a con il pre'io M @megaA il numero corripondente a 20 bit% perci) un mega arebbe cor/
ripoto a 2
20
9 102> < 102> 9 1 0>F ?JE. Per eempio% dato c"e l.F0FE del primo P3 a&e&a un ,ddre Ku di 1E bit% i
computer c"e ua&ano 3P( F0FE o F0FF pote&ano a&ere al maimo 1 MKHte di memoria centrale% in&ece l.F02FE% c"e
a&e&a 2> bit di indiri--o% pote&a arri&are a 1E MKHte.
Gli in'ormatici conidera&ano anc"e c"e 1 giga corripondee a =0 bit% cio$ 2
=0
9 102> < 102> < 102> 9 1 0J= J>1 F2>.
= Gd% in &erit0% la maggioran-a delle perone intende ancora oggi.
p. E di 19 2011/11/2? 01 6ondamenti.odt
log
a
x=
log
b
x
log
b
a
log
2
nBit =
log
10
nBit
log
10
2
=
ln nBit
ln 2
nMax1 = 2
nBit
nBit =log
2
2
nBit
=log
2
nMax1
AO 1 @ Plog
2
+ = n IntSup nBit
Ing. Gabriele MONTI 1999 2010 Numeri www.ingmonti.it
3on +ueta de'ini-ione di M% ora uperata% una 3P( =FE% c"e "a indiri--i a =2 bit% pu) a&ere al maimo > GKHte di me/
moria centrale.
3ontinuando a muo&eri per multipli di mille% come nel 8itema Interna-ionale% e di dieci bit in dieci per il numero% i
a&e&a 2
>0
% c"e arebbe un Tera @TA. Gempio7 l.indiri--o &irtuale di un =FE $ di >E KHte% perci) un =FE pu) a&ere al ma/
imo E> TKHte di memoria &irtuale @coa ia la memoria &irtuale non $ tempo di piegareA.
2
?0
arebbe un Peta @PAI 2
E0
corriponderebbe a un GLa @eLabHte% e ri'erito alla memoriaA. (na 3P( c"e abbia indiri--i
di E> bit pu) indiri--are al maimo 1E GKHte di memoria.
5.uo dei pre'ii era dun+ue etremamente ambiguo e corretto dal punto di &ita 'ormale perc"# in +ueto modo in
campo in'ormatico i ua&ano gli tei imboli ed i tei nomi per +uantit0 di&ere ripetto a tutte le altre unit0 di miu/
ra.
, complicare ulteriormente la itua-ione c. $ poi la +uetione dei imboli per bit e KHte. Tipicamente i ua la b minu/
cola per indicare i bit% maiucola per i KHte. 2un+ue cri&ere Mb indica megabit e MK% con la K grande% indica mega/
bHte. 5a ola di''eren-a 'ra maiucolo e minucolo $ molto peo del tutto ambigua% non ci i pu) empre 'idare di ci)
c"e $ critto e i poono 'are 'acilmente errori di F &olte. Per +ueto% in +ueto teto% non i &edr0 pi4 n# Mb n# MK% ma
olo Mbit o MKHte.
Per riol&ere la +uetione dei pre'ii la 3ommiione Glettrotecnica Interna-ionale
>
% upportata dal 3IPM e dalla
IGGG
?
% "a emeo nel 2icembre 199F un emendamento alla norma IG3 E002J/2 c"e tabilice +uanto egue.
I pre'ii N% M% G ono empre baati ui multipli di 1000% come con tutte le altre grande--e% cio$ N 9 1000% M 9 10
E
% G
9 10
9
% T 9 10
12
% P 9 10
1?
% G 9 10
1F
.
Per le unit0 in'ormatic"e ono introdotti nuo&i pre'ii per i multipli binari. !ueti pre'ii non 'anno parte del 8.I.% ma
ono tollerati. I nuo&i pre'ii ono illutrati in +ueta tabella% con'rontati con i pre'ii 8.I. da cui traggono ipira-ione7
6attore
*binario*
8imbolo Nome Moltiplicatore 6attore
8.I.
8imbolo
8.I. analogo
Nome 8.I.
analogo
Moltiplicatore
2
10
"i "ibi 102>
10
=
N Nilo 1000
2
20
#i mebi 1 0>F ?JE
10
E
M mega 1 000 000
2
=0
!i gibi 1 0J= J>1 F2>
10
9
G giga 1 000 000 000
2
>0
Ti tebi 1 099 ?11 E2J JJE
10
12
T tera 1 000 000 000 000
2
?0
$i pebi
1 12? F99 90E F>2 E2>
10
1?
P peta
1 000 000 000 000 000
2
E0
%i e&bi
1 1?2 921 ?0> E0E F>E 9JE
10
1F
G eLa
1 000 000 000 000 000 000
Tabella ': prefissi delle grandezze (informatic)e( secondo *% 6++2,
I nuo&i pre'ii ono ottenuti dai *corripondenti* del 8.I. aggiungendo un *bi* @per *binarH*A nel nome ed una i nel im/
bolo.
2un+ue un Nilobit @NbitA ora $ comun+ue 1000 bit% mentre un Nibibit @NibitA $ 102> bit% 1 megabit @1 MbitA 9 1 000 000
bit e 1 mebibit @1 MibitA 9 1 0>F ?JE bit. (n mega $ di nuo&o un milione eatto e poiamo dire c"e con 20 bit i pu)
a&ere un po. pi4 di un mega% cio$ un mebi.
3oD la nomenclatura arebbe mea a poto% e i nuo&i pre'ii 'oero uati. Ma non accade1
2i olito i cotruttori di memoria indicano la capacit0 dei loro dipoiti&i uando la con&en-ione binaria% per cui% per
&endere una memoria da 1 0>F ?JE KHte do&rebbero dire *+ueta memoria $ da 1 GiKHte* e non *+ueta memoria $ da 1
GKHte*.
,l contrario i cotruttori di Qard 2iN di olito uano i pre'ii decimali tandard% per cui un dico da 1 TKHte "a e''ett/
&amente una capacita di 1 000 000 000 000 KHte.
5.ambiguit0 permane anc"e nel mondo delle reti% +uando i legge *&elocit0 della rete7 100 MbR*% non i a e i tratta di
M oppure Mi e non i $ icuri c"e i tratti di bit in&ece c"e KHte. Gli organimi di normali--a-ione tendono ad adeguari
pi4 rapidamente degli altri alle nuo&e normeI per eempio% tutte le norme emee da IGGG utili--ano i pre'ii N% M% G ..
del 8.I.% c"e +uindi ono multipli di 1000.
Stima approssimativa di 2
N
2ato il numero N di bit di un numero binario% il numero di numeri c"e i poono rappreentare $ 2
N
.
Per a&ere una tima *un tanto al c"ilo* @o meglio% al NibiA dell.entit0 di 2
N
%
conideriamo +uante decine di bit abbiamo nel numero. 5e decine di bit ci danno il coe''iciente c"e i de&e ap/
plicare @e. 1 decina 9 Ni% 2 decine 9 Mi% = decine 9 Gi%..A
conideriamo +uanto *rimane* di N ripetto alla decina coniderata. Gle&ando 2 a +ueto eponente otteniamo
il numero per cui moltiplicare il coe''iciente indi&iduato nel punto precedente
Gempi per alcuni numeri binari di lung"e--a tipica7
> IG3% l.organimo interna-ionale c"e emette le norme elettric"e ed anc"e relati&e ai computer.
? 3omit# International de Poid et Meure% Intitute o' Glectrical and Glectronic Gngineer.
01 6ondamenti.odt Cer. 0.9.> 2011/11/2? p. J di 19
Ing. Gabriele MONTI www.ingmonti.it
Numero di 1E bit. 2
1E
9 2
E
< 2
10
. 8iccome 2
10
$ un Ni 9M 2
1E
9 2
E
Ni 9 E> Ni . Per cui con 1= bit i rappreentano un po. pi4
di E0000 numeri @E??=EA.
Numero di 2> bit. 2
2>
9 2
>
< 2
20
. 8iccome 2
20
$ un Mi 9M 2
2>
9 2
>
Ni 9 1E Mi . Per cui con 2> bit i rappreentano un po.
pi4 di 1E milioni di numeri.
Numero di =2 bit. 2
=2
9 2
2
< 2
=0
. 8iccome 2
=0
$ un Gi 9M 2
=2
9 2
2
Gi 9 > Gi . Per cui con =2 bit i rappreentano pi4 di >
miliardi di numeri.
Numero di E> bit. 2
E>
9 2
>
< 2
E0
. 8iccome 2
E0
$ un Gi 9M 2
E>
9 2
>
Gi 9 1E Gi . Per cui con E> bit i rappreentano pi4 di 1E
miliardi di miliardi di numeri @$ un numero grandino..A
6acile generali--are ad ogni numero di bit%
(.(.+ 6omi dei numeri di molti bit
Gli in'ormatici% per intenderi rapidamente ulle entit0 con cui "anno a c"e 'are "anno dato nomi peciali ai numeri bina/
ri% in bae al numero di ci're c"e poiedono.
-ibble
(n numero binario di .uattro cifre &iene detto *nibble* @parola c"e in Italiano non i traduce mai% ma c"e igni'ica
*piccolo moro*% in contrappoi-ione a KHte @&edi in eguitoAA.
(n numero binario di +uattro bit pu) aumere i &alori da 0 a 1?. (n nibble pu) eere utile per rappreentare una in/
gola ci'ra eadecimale o per contenere una ci'ra K32 @&edi oltreA.
B/te
Il B/te $ un numero binario di otto bit @anc"e KHte non i traduce mai in Italiano. In Inglee $ un termine in&entato% ma
*bite* igni'ica *moro*A. Il KHte $ un numero c"e pu) aumere tutti i &alori c"e &anno da 0 a 2?? @2
F
/1A.
Un 2yte si usa tipicamente per contenere un carattere! o! meglio! il codice A#/.. o A8#. del carattere.
0ord
Il termine 1ord pu) eere uato in modo ambiguo. Il igni'icato originario del termine "a a c"e 'are con l.arc"itettura
peci'ica di ogni tipo di computer. ,l giorno d.oggi per) il termine word di olito indica un numero di 1E bit.
Peraltro non sempre cos9! dato che! per esempio! nei computer con Po:erP/ '* bit sono una &half :ord&! la
:ord ha 1$ bit! mentre nei computer con Alpha o -(-* il termine :ord significa '* bit.
Potremo capire solo pi; avanti il perch di questa ambiguit5.
(n numero di 1E bit pu) aumere E??=E &alori @2
1E
A% da 0 a E??=? @2
1E
1A.
2ouble Sord @oppure 5ong SordA
G. un numero di =2 bit% c"e pu) aumere i &alori c"e &anno da 0 a > 29> 9EJ 29? @2
=2
1A
!uad Sord
G. un numero di E> bit% c"e pu) aumere i &alori c"e &anno da 0 a circa 1%F> < 10
19
@cio$ 2
E>
/1A
8i ribadice c"e il termine Sord $ ambiguo e di coneguen-a anc"e 2ouble Sord e !uad Sord.
(.(., $onversioni fra le basi
Da tutte le basi a base 10
!ueta con&erione $ molto emplice% i tratta olo di &iluppare il polinomio c"e genera il numero in nota-ione poi-io/
nale. I eguenti eempi do&rebbero c"iarire tutto7
1010
2
% 0 & 1 ' 1 & 2 ' 0 & ( ' 1 & ) % 10
10
2*+
)
% + ' * & ) ' 2 & )
2
% + ' * & ) ' 2 & *( % 1,-
10
0.10(
1*
% ( ' 0 & 1* ' 1 & 1*
2
' 1/ & 1*
+
% ( ' 2/* ' 1/ & (0-* % *1,00
10
Da decimale a tutte le basi
5a con&erione conite in una erie di di&iioni @*lunga di&iione*A% nella +uale ogni reto cotituice una ci'ra del riul/
tato% a partire dalla ci'ra meno igni'icati&a.
Preo il numero da con&ertire lo i di&ide per la bae% ottenendo il +uo-iente intero ed il reto. Il +uo-iente $ la parte in/
tera del riultato della di&iione.
Il reto della prima di&iione $ la ci'ra meno igni'icati&a del numero con&ertito.
, +ueto punto i prende il +uo-iente della prima di&iione e lo i di&ide ancora per la bae. Il reto della econda di&i/
ione $ la econda ci'ra meno igni'icati&a del riultato. Il +uo-iente della econda di&iione i di&ide per la bae% e coD
&ia% 'ino a c"e il +uo-iente dell.ultima di&iione non $ -ero.
p. F di 19 2011/11/2? 01 6ondamenti.odt
Ing. Gabriele MONTI 1999 2010 Numeri www.ingmonti.it
5.algoritmo $ emplice e% per la bae 2% i pu) &olgere anc"e en-a calcolatrice% dato c"e le di&iioni ono empre e
olo per due.
12 2
0 * 2
0 + 2
1 1 2
1 0
Figura 4: conversione di 121+ 2 11++2
2a decimale ad eadecimale @bae 1EA
5.algoritmo $ identico al cao della bae 2% con l.unica di''eren-a c"e tutte le di&iioni ono per 1E in&ece c"e per 2. 5e
di&iioni per 1E ono 'acili olo e i dipone di una calcolatrice. 8e non i "a una calcolatrice a portata di mano tutto
ommato $ pi4 &eloce con&ertire in binario% poi da binario in eadecimale.
Se si disone di una calcolatrice0 di solito essa non 1 in grado di dare il risultato
delle di"isioni come quo2iente e resto$ 3uando si di"ide er sedici si otterr! un numero
decimale$ 4er ottenere il resto0 togliere al risultato la arte intera e moltilicare er
1*$
#semio:
*1,00 : 1* % +)/*02/ +)/*02/ - +)/* % 002/ 002/ & 1* % ( (il rimo resto)
+)/* : 1* % 2(1 resto % 0
2(1 : 1* % 1/00*2/ 1/00*2/ - 1/ % 000*2/ resto % 000*2/ & 1* % 1
1/ : 1* % 0 resto 1/ % .h
5l numero con"ertito 1 dunque: .10(
5a con&erione da decimale ad ottale $ analoga e non la pieg"iamo.
Fra binario, ottale ed esadecimale
3ome gi0 accennato +uete con&erione ono molto 'acili e &eloci. 2ato c"e le con&erioni i poono 'ate a mente% i
pu) dire c"e le bai F e 1E &engono uate per cri&ere i numeri binari in modo compatto.
2ato c"e F 9 2
=
e 1E 9 2
>
% c.$ una corriponden-a precia 'ra le ci're del numero binario e +uelle del numero ottale od
eadecimale% per cui la con&erione pu) 'un-ionare in entrambi i eni otan-ialmente con lo teo algoritmo.
Per con&ertire &ero la bae F bata di&idere il numero binario in gruppi di = bit% a partire dal bit meno igni'icati&o. Poi
i prender0 ciacuno dei gruppi e lo i con&ertir0 nella corripondente ci'ra ottale. 3iacun gruppo di = bit dar0 numeri
da 0 a 111
2
% cio$ da 1 a J% c"e ono le ci're di un numero ottale.
1 1 0 1 0 0 0 0 1 0 0 0 0
1 ? 0 2 0
Figura ': conversione di 11+1++++1++++2 2 1'+2+3
,nalogo il cao della con&erione da bae 2 a bae 1E% e &ice&era. In +ueto cao i de&ono raggruppare @nibbleA% a par/
tire dal bit meno igni'icati&o. Poi i prender0 ciacuno dei gruppi e lo i con&ertir0 nella corripondente ci'ra eadeci/
male @naturalmente e il nibble corriponde a 10 i metter0 la ci'ra ,% e $ 11% K e coD &ia ino a 1? @1111
2
A% c"e i oti/
tuir0 con 6A.
1 1 0 1 0 0 0 0 1 0 0 0 0
1 , 1 0
Figura 6: conversione di 11+1++++1++++2 2 1A1+16
6ra ottale e binario i proceder0 a gruppi di = ci're% il reto ar0 immutato.
01 6ondamenti.odt Cer. 0.9.> 2011/11/2? p. 9 di 19
Ing. Gabriele MONTI www.ingmonti.it
(.(./ Opera<ioni aritmetiche
Somma fra numeri binari
2ate un paio di regole un po. trane% l.opera-ione in colonna di&enta pi4 emplice c"e in bae 10. Poto c"e% come abbia/
mo gi0 &ito% 1
2
: 1
2
9 10
2
% +ueto igni'ica c"e in una opera-ione in colonna 1 : 1 'a -ero con il riporto di uno. 5.altro
cao c"e i pu) preentare ommando due numeri $ 1 : 1 : 1 9 =
10
9 11
2
% c"e i preenta +uando c.$ un riporto dalla co/
lonna precedente. 3i) igni'ica c"e% in bae 2% 1 : 1 : 1 'a 1 con il riporto di 1. 8e la omma in una colonna upera il nu/
mero =% il riporto andr0 'atto pi4 a initra di una colonna% p.e. 8e la omma di una colonna $ ? 9 101
2
% allora nella co/
lonna corrente andr0 egnato un 1% nella colonna a initra neun riporto e nella colonna ancora pi4 a initra un 1 di ri/
porto @&edi riporto in roo nel eguente eempioA.
Gempio% 11E : == : 100 : 1209 >==7
1 0
riporti
1 1 1 1 1
1 1 1 0 1 0 0 :
0 1 0 0 0 0 1
1 1 0 0 1 0 0
1 1 1 1 0 0 0 9
1 0 1 1 1 0 0 0 1
Sottrazione fra numeri binari
,nc"e nella ottra-ione biogna giuti'icare due regole trane. 8e il bit del ottraendo $ -ero e +uello del minuendo $
uno i preenta il cao 0 / 1 e i de&e andare a *pretito* dalla ci'ra pi4 a initra. 3on il pretito l.opera-ione di&enta 10
2
/ 1 9 2
10
/ 1 9 1I perci) 0 / 1 9 1 con pretito. 5.altro cao $ /1 /1% c"e pu) capitare in preen-a di pretiti dalla colonna
precedente. In +ueto cao $ neceario prendere pretito dalla colonna uccei&a e l.opera-ione di&iene 10
2
/1 /1 9 2 /
1 / 1 9 0. Per cui /1 /1 9 0 con pretito.
/1 /1 /1
0 / 0 /
1 9 1 9
1 0
Figura ,: prestiti nelle sottrazioni4
Gempio% 1E= / 10? 9 ?F7
/1 /1 /1 /1 pretiti
1 0 1 0 0 0 1 1 / ottraendo
1 1 0 1 0 0 1 9 minuendo
0 0 1 1 1 0 1 0
T U V W
5a colonna V e+ui&ale a 0 / 1 9 1 con pretito. Nella colonna U il /1 del pretito e l.uno del ottraendo i cancellano% coD
rimane olo il /1 del minuendo e la itua-ione $ la tea del cao W. 5a colonna T $ un cao di / 1 / 1 9 0 con pretito.
Moltiplicazione fra numeri binari
Per moltiplicare numeri binari non c.$ biogno di apere le tabelline% perc"# ci ono olo 0 e 1% ma i pu) applicare lo
teo algoritmo &ito alle cuole elementari. Per non complicare le omme potrebbe eere neceario compierle *due
alla &olta*.
Gempio% 2J < 11 9 29J7
1 1 0 1 1 <
1 0 1 1
1 1 1 1 1 riporti
1 1 0 1 1 :
p. 10 di 19 2011/11/2? 01 6ondamenti.odt
Ing. Gabriele MONTI 1999 2010 Numeri www.ingmonti.it
1 1 0 1 1 / :
0 0 / / :
1 1 0 1 1 / / / 9
1 0 0 1 0 1 0 0 1
Divisione fra numeri binari
,nc"e +ui non $ neceario conocere le tabelline. 5.algoritmo $ molto pi4 emplice a 'ari c"e a diri.
Pro&iamo a dare una decri-ione a parole di coa biogna 'are. Il procedimento $ per ottra-ioni uccei&e% identico a
+uello adottato per la bae 10.
1 8i cerca nella parte pi4 igni'icati&a del di&idendo un numero pi4 grande del di&iore @egni XXXX nell.eempioA
2 8i mette un 1 nel +uo-iente
= 8i ottrae il di&iore al numero tro&ato% ottenendo un reto @0011 nell.eempioA% cui i aggiunge a detra la ci'ra pi4 i/
gni'icati&a 'ra +uelle rimate da elaborare del di&idendo @primo egno & dell.eempioA.
> 8i &ede e il numero ottenuto @00111A $ maggiore o minore del di&idendo.
>., 8e il numero $ maggiore i aggiunge un 1 nel +uo-iente e i ottrae il di&idendo @riultato 001 nell.eempioA
>.K 8e il numero $ minore i cri&e uno -ero nel +uo-iente
? 8i proegue aggiungendo un.altra ci'ra a detra prendendo la prima non ancora elaborata del di&idendo @egni &A e tor/
nando al punto >% 'ino a c"e il di&idendo non $ tato elaborato tutto.
E , +ueto punto abbiamo ottenuto il +uo-iente e ci) c"e rimane dall.ultima ottra-ione $ il reto della di&iione intera.
3ome anticipato +ueta decri-ione $ pi4 complicata del calcoloI pro&ando un paio di eempi i imparer0 beniimo.
01 6ondamenti.odt Cer. 0.9.> 2011/11/2? p. 11 di 19
Ing. Gabriele MONTI www.ingmonti.it
Gempio7 1?2 7 E 9 2? con reto di 2
X X X X & & & &
/1 /1
1 0 0 1 1 0 0 0 1 1 0
1 1 0 1 1 0 0 1
0 0 1 1 1
1 1 0
0 0 1 0 0 0
1 1 0
0 0 1 0 r.
#i noti che in realt5 i computer reali adottano algoritmi per la divisione intera molto pi; efficienti e veloci di
quello appena descritto.
Somma fra numeri esadecimali
Per 'are bene ulla carta le omme eadecimali biognerebbe imparari il riultato di molte omme trane come 2 : 9% 6
: 3% e coD &ia. 2ato c"e non i uano coD peo $ meglio aiutari abbondantemente con le dita% oppure paare in bina/
rio% magari olo per +uattro bit% 'are la omma e ripaare in eadecimale.
r.1 r.1
6 G 2 G :
6 1 F 9
1 0 2 6 E
I riporti i poono trattare coD7 colonna meno igni'icati&a7 G
1E
: F 9 1> : F 9 22% c"e upera 1E di E. Per cui cri&iamo
E nella colonna e 1 come riporto nella colonna uccei&a.
3olonna G : 67 G
1E
: 6
1E
9 1> : 1? 9 29I 29 1E 9 1= 9 2
1E
% per cui i cri&e 2 nella colonna ed 1 nel riporto.
Sottrazione fra numeri esadecimali
5a ottra-ione 'un-iona come con le altre bai% naturalmente anc"e +ui il *pretito* &ale come la bae% cio$ 1E. Cediamo
un eempio% 612O
1E
611
1E
9 G2K6
1E
7
1E 1E
/1 /1
6 1 2 O :
/6 /1 /1 9
G 2 K 6
Nella colonna meno igni'icati&a% 0 $ pi4 piccolo di uno per cui i &a *a pretito* dalla colonna accanto e i ottengono
1E *unit0* per +ueta colonna. 1E : 0 1 9 1? 9 6
1E
% per cui i cri&e 6 in +ueta colonna e i &a a pretito di uno nella
colonna a initra. Nella econda colonna meno igni'icati&a 2 1 @pretitoA 1 @il ottraendo "a egno negati&oA 9 K.
Poi 1 6 ric"iede il pretito% c"e *preta* 1E% per cui nella colonna i cri&e 1E : 1 6
1E
9 1E : 1 1? 9 2% c"e &ine
critto in colonna% con il pretito nella colonna accanto. Nell.ultima colonna7 6
1E
1 @pretitoA 9 G
1E
.
Operazioni con numeri interi anche negativi
5a numera-ione binaria c"e abbiamo &ito non embra eere adatta a rappreentare i numeri negati&i. In'atti la omma/
toria c"e genera i numeri in +ualiai bae non pre&ede numeri negati&i. I numeri binari *puri* ono perci) en-a egno.
2ato c"e $ indipenabile uare anc"e i numeri con egno% &ediamo due modi per poterlo 'are% ma prima 'acciamo nota/
re c"e il primo dei due metodi NON $ +uello uato nei computer.
Rappresentazione dei numeri interi e neati!i in modulo e seno
5a coa pi4 *naturale* c"e &iene in mente $ dedicare uno dei bit del numero al egno% laciando tutto il reto come pri/
ma. !ueto modo di procedere e+ui&ale ad utili--are il &alore aoluto del numero @detto anc"e *modulo* in matemati/
caA ed il uo egno. Per il egno poiamo cegliere di cri&ere 0 per i numeri poiti&i e 1 per i negati&i.
3oniderando il numero 12 a J bit% con un otta&o bit c"e rappreenta il egno% abbiamo7
0 0 0 0 1 1 0 0
5a rappreenta-ione di /12 in modulo e egno arebbe7
1 0 0 0 1 1 0 0
Per +uanto +ueta ia la rappreenta-ione pi4 emplice da 'are ulla carta% ea non $ il modo migliore di rappreentare i
numeri negati&i in un computer. In'atti tutti i computer uano la rappreenta-ione in complemento a due.
Rappresentazione dei numeri neati!i in complemento a due
!ueto modo un po. trano di rappreentare i numeri negati&i "a moti&a-ioni pratic"e. 8e i uano numeri negati&i in
complemento a due i computer poono utili--are gli tei circuiti elettronici per 'are ia le omme ia le ottra-ioni.
p. 12 di 19 2011/11/2? 01 6ondamenti.odt
Ing. Gabriele MONTI 1999 2010 Numeri www.ingmonti.it
8e al contrario% per +ualc"e inana ragione% un computer uae numeri negati&i in modulo e egno% i do&rebbero dedi/
care molti circuiti per 'are la omma ed altri per 'are la ottra-ione. 8iccome i circuiti riparmiati poono eere impie/
gati pi4 utilmente per 'are altre coe% non c.$ neun computer c"e ui un.algebra in modulo e egno per 'are le opera-io/
ni con i numeri negati&i.
Per +ueto +uando un computer de&e cambiare il egno di un numero intero ne 'a empre il complemento a due.
2etto della moti&a-ione pratica% &ediamo come i ottiene il complemento a due di un numero.
Per ottenere il complemento a due di un numero i 'anno due opera-ioni7
1. opera-ione di *complemento ad uno*7 i in&erte il &alore di ciacun bit del numero. 8e il bit &ale 1 lo i 'a di&entare
0% 0 e &ale 1.
2. incremento7 al primo riultato i aggiunge 1.
3oniderando ancora 12 e /127
0 0 0 0 1 1 0 0 12
0 0 0 0 1 1 0 0 NOT
1 1 1 1 0 0 1 1 :
1 9
1 1 1 1 0 1 0 0
1 1 1 1 0 1 0 0 /12
8i nota come 'acendo il complemento a due cambia tutto il numero% non olo il bit pi4 igni'icati&o.
Pro&iamo a ri'are il complemento a due di +uello c"e abbiamo detto eere /127
1 1 1 1 0 1 0 0 /12
1 1 1 1 0 1 0 0 NOT
0 0 0 0 1 0 1 1 :
1 9
0 0 0 0 1 1 0 0
0 0 0 0 1 1 0 0 12
5.opera-ione di complemento a due i comporta e''etti&amente come il cambio di egno% e la applic"iamo due &olte 'a
tornare il numero originario% +ueto uccede empre.
,l bit pi4 igni'icati&o di un numero con egno rappreentato in complemento a due% pu) comun+ue eere attribuito il
igni'icato di egno.
(n numero intero in complemento a due $ poiti&o e il bit pi4 igni'icati&o $ -ero% $ negati&o e $ uno.
I numeri in complemento a due "anno eno olo e "anno un numero 'inito di bit% biogna apere con +uanti bit $ 'atto
un numero in complemento a due% e non altro per apere do&.$ il bit del egno1
(na e+uen-a di bit &iene detta *numero senza segno* e $ un normaliimo numero binario% empre poiti&o% e *nume/
ro con segno* e conideriamo come egno il uo bit pi4 igni'icati&o ed il numero $ rappreentato in complemento a
due.
Y molto importante capire c"e la tea e+uen-a di bit pu) rappreentare numeri di&eri% e la i conidera un numero
con egno oppure en-a egno% in +ueto aiuta la uccei&a tabella7
01 6ondamenti.odt Cer. 0.9.> 2011/11/2? p. 1= di 19
Ing. Gabriele MONTI www.ingmonti.it
Numeri con egno 8e+uen-a di bit Numeri en-a egno
a F bit a 1E bit a =2 bit a =2 bit a 1E bit a F bit
0 0 0 000 .. 000 0 0 0
1 1 1 000 .. 001 1 1 1
..
12E =2JEE 21>J>F=E>E 011 .. 110 21>J>F=E>E =2JEE 12E
12, =2JEJ 21>J>F=E>J 011 .. 111 21>J>F=E>J =2JEJ 12,
5123 /=2JEF /21>J>F=E>F 100 .. 000 21>J>F=E>F =2JEF 123
/12J /=2JEJ /21>J>F=E>J 100 .. 001 21>J>F=E>9 =2JE9 129
..
/2 /2 /2 111 .. 110 >29>9EJ29> E??=> 2?>
/1 /1 /1 111 .. 111 >29>9EJ29? E??=? 2??
Tabella 6: numeri con segno o senza segno
;agionare per un po. u +ueta tabella 'a capire com.$ 'atta la nota-ione in complemento a due.
3on'rontando le colonne di initra con +uelle di detra i &ede c"e7
/ gli tei bit rappreentano numeri di&eri
/ le e+uen-e di bit c"e "anno il bit pi4 igni'icati&o a -ero ono +uelli pi4 piccoli della met0 e rappreentano empre lo
teo numero% iano c"e li conideriamo con egno oppure en-a egno
/ il numero con egno cotituito di tutti 1 $ comun+ue 1% +uale c"e ia il numero di bit c"e lo compone
Puntiamo ora l.atten-ione u coa uccede nei numeri in complemento a due +uando i aggiunge 1 al numero 'atto con
uno 0 e tutti 1. !ueta $ la riga della tabella in cui cambia il egno% a F bit i paa da 12J a /12F. Ma com.$ poibileB
Pro&iamo a 'are il complemento a due di 12F7
1 0 0 0 0 0 0 0 :12F en-a egno
1 0 0 0 0 0 0 0 NOT
r.1 r.1 r.1 r.1 r.1 r.1 r.1
0 1 1 1 1 1 1 1 :
1 9
1 0 0 0 0 0 0 0
1 0 0 0 0 0 0 0 /12F con egno
Il complemento a due del numero *del me--o* $ uguale a e teo1
3i) &ale anc"e per lo -ero% il cui complemento a due $7
0 0 0 0 0 0 0 0 Zero en-a egno
0 0 0 0 0 0 0 0 NOT
r.1 r.1 r.1 r.1 r.1 r.1 r.1
1 1 1 1 1 1 1 1 :
1 9
1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 con egno
Naturalmente% mentre l.opera-ione 12J : 1 'un-iona 'ra numeri en-a egno% ea $ un errore 'ra numeri con egno. Nei
capitoli uccei&i &err0 piegato come &iene egnalata +ueta anomalia nei computer.
I numeri c"e ono critti nella tabella ono pi4 importanti degli altri e ogni tanto poono er&ire. 3oD arebbe bene co/
nocerli *a memoria* @non $ il cao per +uelli a =2 bit1A.
"perazioni in complemento a due
5e magic"e propriet0 dei numeri in complemento a due i appre--ano 'acendo +ualc"e omma.
r.1 r.1 r.1 r.1 r.1 r.1
0 1 1 0 0 0 1 1 :
1 0 1 0 1 1 0 1 9
1 0 0 0 1 0 0 0 0
c
p. 1> di 19 2011/11/2? 01 6ondamenti.odt
Ing. Gabriele MONTI 1999 2010 Numeri www.ingmonti.it
8e &ediamo +ueta opera-ione come una omma 'ra numeri en-a egno ea $ 99 : 1J= 9 2J2. 2a notare c"e e tutti
+ueti numeri% riultato compreo% de&ono eere di F bit il riultato *non ci ta* e ci arebbe un riporto% indicato con c @c
ta per *carrH* c"e in Inglee igni'ica riporto @oltre c"e *carriola*% ma non c.entra1A.
8e al contrario &ediamo la omma precedente come una opera-ione 'ra numeri con egno di F bit% rappreentati in com/
plemento a due% +ueta opera-ione $ la omma 'ra 99 e un numero negati&o% dato c"e il econdo numero "a il bit pi4 i/
gni'icati&o uguale a uno.
!uanto &ale +uel numero negati&oB 8e i &uole apere il &alore aoluto di un numero negati&o lo i de&e cambiare di
egno% ci) $ eattamente +uello c"e andremo a 'are. Cediamo dun+ue il complemento a due7
1 0 1 0 1 1 0 1 /B
0 1 0 1 0 0 1 0 :
1 9
0 1 0 1 0 0 1 1
0 1 0 1 0 0 1 1 F=
Il econdo numero ommato precedentemente era +uindi /F= e l.opera-ione 'ra numeri con egno era 99 : @/F=A 9 1E.
1E
10
9 00010000
2
$ proprio il riultato della omma% e ecludiamo il bit di riporto @cA. Nelle opera-ioni 'ra numeri con
egno i ignora empre il bit di carrH% per cui l.opera-ione appena &ita $ lecita e giuta.
2un+ue la tea% identica% opera-ione pu) eere coniderata due di&ere opera-ioni% una con egno e l.altra en-a e/
gno.
,&endo a dipoi-ione un.opera-ione di cambio di egno i pu) penare di 'are le ottra-ioni utili--ando una omma nel/
la +uale il econdo operando ia cambiato di egno.
!ui ta il magico dei numeri in complemento a due7 con la tea opera-ione% cio$ un de'initi&a lo teo circuito elettri/
co% poiamo 'are ia le addi-ioni c"e le ottra-ioni 'ra numeri interi.
Moltiplica-ione e di&iione 'ra numeri interi
Per la moltiplica-ione e la di&iione il complemento a due non aiuta e biogna uare algoritmi di&eri per le opera-ioni
con numeri en-a egno e +uelle con numeri con egno. 2a ci) conegue c"e ci do&ranno eere delle itru-ioni partico/
lari per e''ettuare i due tipi di opera-ioni. Gli algoritmi c"e i uano non ono molto di&eri da +uelli per le opera-ioni
ulla carta% anc"e e ono ottimi--ati ripetto ad ei.
Rappresentazione dei numeri a !irola mobile (floatin point)
6ino ad ora abbiamo parlato di numeri interi ed abbiamo detto c"e $ 'acile per un computer eeguire tutte le opera-ioni
'ra +ueti numeri.
Ma i numeri interi non ono il olo tipo di numeri c"e ono indipenabile nell.in'ormatica. In'atti% per &olgere molti
tipi di 'un-ioni% $ indipenabile per i computer eeguire opera-ioni anc"e con i numeri 'ra-ionari. 8ar0 perci) necea/
rio tabilire una con&en-ione per la rappreenta-ione dei numeri 'ra-ionari e algoritmi per la reali--a-ione delle opera/
-ioni 'ra di ei.
5a rappreenta-ione dei numeri 'ra-ionari &iene detta *a &irgola mobile* @floating pointA ed $ imile alla nota-ione
cienti'ica% c"e eprime i numeri *potando la &irgola* con poten-e di 10.
Il numero 12=%>?E pu) eere critto 12=%>?E <10
0
% oppure 1%2=>?E < 10
2
% 0%12=>?E <10
=
o anc"e 12=>?E <10
/=
.
Il numero al +uale &iene ele&ato l.eponete della bae &iene detto *eponente*% le ci're igni'icati&e &engono dette *man/
tia* @in Inglee mantia o *'raction*A.
5o teo i 'a con i numeri binari a &irgola mobile% olo c"e tutto $ in bae 27
numero % Segno & 10mantissa & 2
esonente
8egno $ :1 e il relati&o bit $ -ero% oppure /1 e il bit $ uno. 5a critta *1%mantia* igni'ica c"e l.eponente pota la
&irgola in modo c"e ea ia ubito dopo il primo 1. 8e la &irgola ta empre in +uella poi-ione i dice c"e il numero $
*normali--ato*. 5a memori--a-ione normali--ata $ intereante perc"# nella prima poi-ione c.$ empre un uno. 3oD
+uell.uno non i memori--a e +ueto 'a riparmiare un bit di memoria.
I numeri a &irgola mobile ono rappreentati con tre campi7 egno% eponente e mantia @'ractionA.
,ttualmente la lung"e--a ed il contenuto di +ueti campi ono codi'icati da uno tandard. !uai tutti le librerie di o't/
ware aritmetico ed i coproceori matematici% cio$ le componenti del computer c"e de&ono 'are i calcoli in &irgola mo/
bile% ono con'ormi alle peci'ic"e della norma IGGG J?>.
5o tandard IGGG J?> pre&ede otan-ialmente tre tipi di numeri a &irgola mobile7 in ingola preciione% in doppia pre/
ciione ed etei. (n numero in ingola preciione occupa =2 bit% uno in doppia preciione ne occupa E>% mentre un ete/
o 12F.
5a truttura dei numeri dello tandard IGGG J?> $ +uella di eguito illutrata7
Numeri 'loating point a ingola preciione7
8 Gponente @FbitA Mantia @2= bitA
=1 =0 2= 22 0
01 6ondamenti.odt Cer. 0.9.> 2011/11/2? p. 1? di 19
Ing. Gabriele MONTI www.ingmonti.it
Numeri 'loating point a doppia preciione7
8 Gponente @11 bitA Mantia @?2 bitA
E= E2 ?2 ?1 0
Il numero eteo% di 12F bit% "a 1 bit di egno% 1? bit di eponente% 10F bit di mantia
5a norma pre&ede numeri poiti&i e negati&i aolutamente *immetrici*% l.unica di''eren-a c"e "a un numero poiti&o
da uno negati&o $ il bit di egno @in +ueto i aomiglia alla nota-ione in modulo e egno dei numeri interiA.
Il numero -ero &iene rappreentato con mantia 90 ed eponente 9 0% il bit di egno $ indi''erente per lo -ero. Gitono
perci) uno -ero *poiti&o* ed uno *negati&o*.
Oltre ai numeri uuali la norma codi'ica anc"e dei cai particolari% delle entit0 non numeric"e. Ge ono :@in'initoA% /
@in'initoA e NaN @Not a NumberA.
I numeri in'initi ono generati +uando il riultato $ maggiore del maimo o minore del minimo rappreentabile. NaN
&iene generato nei cai in cui i "anno indetermina-ioni del riultato% come in 0R0.
NaN pu) anc"e egnalare c"e tipo di errore aritmetico $ tato commeo. !uando l.eponente $ tutti 1 il *numero* $ un
cao particolare.
2etto min il numero rappreentabile pi4 &icino allo -ero e M,[ il numero pi4 grande rappreentabile% il campo dei nu/
meri rappreentabili in &irgola mobile $ +uello indicato nel eguente diagramma% c"e motra in particolare come il nu/
mero 0 $ rappreentabile% ma non il uo intorno pi4 &icino% 'ra min e :min7
/M,[ /min 0 :min :M,[
I &alori di min e M,[ per i tre tipi di numeri della IGGG J?> ono i eguenti7
8ingola preciione @=2 bitA
min 9 1%0 < 2
12E
9 1%1J?>9>=? < 10
=F

M,[ 9 @2%0 2
2=
A < 2
12J
9 =%>02F2=>J < 10
=F
2oppia preciione @E> bitA
min 9 1%0 < 2
1022
9 2%22?0J=F?F?0J201= < 10
=0F
M,[ 9 @2%0 2
?2
A < 2
102=
9 1%J9JE9=1=>FE2=1?F < 10
=0F
Preciione etea @12F bitA
min 9 1%0 < 2
1E=F2
9 =%=E210=1>=11209=?0E2E2EJJF1J=21J?2E0 < 10
>9=2
M,[ 9 @2%0 / 2
112
A < 2
1E=F=
9 1%1F9J=1>9?=?J2=1JE?0F?J?9=2EE2F00J02 < 10
>9=2
Opera-ioni 'ra numeri in &irgola mobile
Per 'are le opera-ioni in &irgola mobile biogna *mettere in colonna* i termini in modo da riportari ad opera-ioni arit/
metic"e normali.
G. importante tener preente c"e anc"e i numeri 'loating point "anno un numero 'inito di ci're.
Per +uanto i riecano a rappreentare% muo&endo la &irgola con l.eponente% numeri molto grandi% non tutte le ci're di
+uei numeri ono igni'icati&e.
Cediamo per eempio coa uccede nella omma 'ra un numero troppo piccolo ed uno troppo grande. Prendiamo un nu/
mero dieci &olte pi4 piccolo di M,[ in ingola preciione7
=%>02F2=>J < 10
=J
9 =>02F2=>J00000000000000000000000000000
2opo l.ultimo J ci poono eere olo -eri% perc"# la mantia non "a abbatan-a ci're igni'icati&e1
8e al numero di prima pro&o ad aggiungere 1 < 10
2J
9 1000000000000000000000000000% c"e pure non $ un numero
piccolo% il riultato rimarr0 identico al primo numero% perc"# dopo a&er meo in colonna i due numeri il pi4 piccolo
ar0 troppo piccolo per in'luen-are il &alore del grande.
3i) igni'ica c"e la omma di molti numeri 'atta con un computer pu) dare riultati di&eri e 'atta ommando dal nume/
ro pi4 grande al pi4 piccolo o &ice&era @i riultati pi4 accurati i otterranno ommando dal pi4 piccolo al pi4 grandeA.
Eediamo ora un esempio che riguarda una somma a virgola mobile in base +. Stabiliamo ad arbitrio una rappresenta<ione dei
numeri, sen<a pensare allo standard e cercando solo di semplificare l@esempio.
Supponiamo di disporre di 5 bit per la mantissa, quattro bit per l@esponente ed un bit per il segno.
Feali<<iamo la somma fra i numeri (7,,37 e GGGG completare GGGG
p. 1E di 19 2011/11/2? 01 6ondamenti.odt
Ing. Gabriele MONTI 1999 2010 Numeri www.ingmonti.it
<olte /PU hanno istruzioni specifiche per facilitare la &messa in colonna& dei numeri! tipica delle operazioni
a virgola mobile %istruzioni di &denormalizzazione&).
Per effettuare le operazioni a virgola mobile si usano librerie di programmi! che si possono acquistare e colle0
gare al nostro programma! oppure dispositivi hard:are dedicati! che sono detti &coprocessori aritmetici&
%FPU! Floating Point Unit! Unit5 di calcolo in virgola mobile).
e /PU pi; moderne hanno unit5 aritmetiche a virgola mobile al loro interno e possono quindi realizzare in
hard:are le operazioni floating point.
#odice $#D
Il codice K32 @KinarH 3oded 2ecimalA $ un modo un po. *precone* di rappreentare i numeri. Go in'atti non impiega
completamente i bit c"e occupa.
3odi'icare una ci'ra in K32 conite nell.uare > bit per rappreentare olo le dieci ci're numeric"e decimali. (are
meno di > bit non i potrebbe% perc"# con = bit i arri&a olo 'ino al numero J. 3on > bit i pu) arri&are ino al numero
1?% per cui% codi'icando il numero in K32 non i utili--ano E combina-ioni di bit per ogni ci'ra% cio$ +uelle c"e in ea/
decimale ono le ci're da , ad 6.
6ediamo come esemio la codifica in 7CD del numero 20-*0 che richiede 1* bit:
0 0 1 0 0 0 0 0 1 0 0 1 0 1 1 0
2 0 - *
Il codice K32 era utili--ato nella notte dei tempi I/A per memori--are i numeri negli "ard diN dei main'rame% oggi $ an/
cora molto uato nei diplaH numerici a 5G2. !uando i de&ono uare tali diplaH $ probabile do&er 'are opera-ioni con
i numeri in K32. 2i&eri tipi di computer% 'ra i +uali anc"e +uelli con microproceore F0FE% "anno itru-ioni peci'i/
c"e per e''ettuare con&erioni 'ra binario e K32 ed anc"e opera-ioni aritmetic"e c"e 'un-ionano direttamente con nu/
meri in K32.
6ediamo quanto si 8sreca8 con un numero di - cifre0 oniamo 1 miliardo (--- --- ---)$ 5n
7CD ciascuna cifra decimale render! ) bit0 er cui er il nostro miliardo ci "orranno -
9 ) % ,2 bit$ Se in"ece raresentiamo un miliardo con un normale numero binario0 il nu-
mero di bit richiesti sar! +00 infatti:
nBit =IntSup[log
2
9999999991]=IntSup[ 29%F9]==0
5l che significa che (2 dei ,2 bit della raresenta2ione in 7CD sono srecati$
1.2 Rappresentazioni delle lettere
Per elaborare le in'orma-ioni in modo c"e poano eere utili--ate dagli eeri umani $ indipenabile codi'icare% oltre
ai numeri% anc"e altri imboli con i +uali ei comunicano% in particolare le lettere dell.al'abeto. 5e in'orma-ioni de&ono
eere preentate in modo *al'anumerico*% cio$ 'acendo uo di caratteri dell.al'abeto e di numeri. Per rappreentare le
lettere biogna 'are uo di codici di&eri ripetto a +uelli gi0 preentati. ,lcuni di +ueti codici eitono da prima dell.era
dei computer% altri ono recenti.
Nel gergo in'ormatico una lettera% o una ci'ra da tampare% &iene detta *carattere* alfanumerico @c"aracterA e una uc/
ceione di caratteri &iene detta *stringa* @tringA.
#odice %ollerit
5a prima macc"ina elettrica di elabora-ione delle in'orma-ioni 'u la macc"ina di Qollerit @1F90A% in&entata per automa/
ti--are i calcoli nelle tatitic"e demogra'ic"e in (8,.
5a macc"ina di Qollerit utili--a&a c"ede di carta per'orate per 'ar a&an-are dei contatori elettromeccanici. 8e la carta
era 'orata &eni&a 'atto un contatto c"e incrementa&a il &alore del totali--atore% altrimenti il &alore non a&an-a&a.
Il codice Qollerit 'u uato nelle c"ede per'orate% c"e &eni&ano utili--ate per i dati ed i programmi dei primi computer.
#odice &$#D'#
Nei *main'rame*% i groi computer centrali c"e impera&ano nei tempi andati e c"e ono ancora uati eteamente% l.IKM
introdue un codice% deri&ato da +uello c"e i ua&a nelle c"ede per'orate% c"e c"iam) GK32I3. Go $ del tutto di/
&ero dal codice ,83II ed etende il codice K32 ai caratteri al'abetici.
01 6ondamenti.odt Cer. 0.9.> 2011/11/2? p. 1J di 19
Ing. Gabriele MONTI www.ingmonti.it
5a eguente tabella motra un par-iale con'ronto 'ra codice ,83II e G232I37
3arattere 3odice ,83II 3odice GK32I3
, 9Jd 129d
B E=d 111d
0 >Fd 2>0d
Q J2d 200d
I J=d 201d
\ J>d 209d
] J?d 210d
3ome i &ede non ci ono rela-ioni 'ra i due tipi di codi'ica. Inoltre i pu) notare c"e nel codice GK32I3 c.$ un *alto*
nel paare dalla codi'ica di I a +uella di \% nel codice GK32I3 l.al'abeto &iene perci) *interrotto*.
#odice ()#''
,83II igni'ica *,merican 8tandard 3ode 'or In'ormation Interc"ange* ed $ una codi'ica al'anumerica c"e data al
19E=. Go 'u rati'icato come tandard dall.,N8I nel 19EF. 5.,N8I @American -ational 6tandard *ntituteA $ l.organi/
mo di normali--a-ione degli (8,% corripondente al notro (NI.
Il codice ,83II tandard "a J bit% per cui $ poibile rappreentare 12F imboli. I primi =2 numeri del codice ,83II non
ono codici di caratteri di tatiera% ma ono rier&ati a comandi per il dipoiti&o c"e li rice&e. 8ono i coiddetti *caratte/
ri non tampabili*% o *caratteri di controllo* @control c"aracterA.
3"i rice&e i caratteri di controllo li pu) interpretare come comandi o a-ioni da compiere% come p.e. *carriage return*
@codice ,83II 9 1=A% c"e manda a capo di riga il carrello di una tampante% *line 'eed* @nuo&a linea% codice ,83II 9
10A% c"e manda a&anti di una linea la carta di una tampante% *'orm 'eed* c"e manda a&anti 'ino alla 'ine del 'oglio%
*ecape*% c"e &iene uato da tatiera per igni'icare *torna indietro* ed altri.
Nel codice ,83II7
/ con i codici da =0" a =6" &engono codi'icati imboli numerici e d.interpun-ione
/ con i codici da >0" a ?6" le lettere maiucole
/ con i codici da E0" a J6" le minucole.
3odice ,83II eteo
Il codice ,83II eteo $ a F bit. Gitono molti codici ,83II etei% per eempio il 3ommodore E> a&e&a il uo. 2i gran
lunga il pi4 popolare $ +uello introdotto dall.IKM +uando produe il primo P3.
Nel et di caratteri eteo tutti i primi 12F codici ono identici all.,83II tandard mentre gli altri 12F includono caratteri
emigra'ici per diegnare rettangoli ullo c"ermo% egni peciali matematici% +ualc"e lettera greca e oprattutto le lettere
particolari degli al'abeti occidentali% +uali le &ocali accentate per l.Italiano oppure la o con la dierei per la lingua tede/
ca.
Purtroppo il numero di codici a disposizione non bastava per coprire tutte le lettere strane dei vari alfabeti!
cos9 esistono di fatto diversi set di caratteri A#/.. estesi anche per il P/! sostanzialmente uno per ogni lin0
gua! ciascuno diverso dall"altro.
#odice ')" 88*+,1 (-indo.s (N)') a 8 bit
5.I8O @l.organi--a-ione mondiale degli tandardA "a normali--ato un.etenione ad F bit della tabella ,83II% con lo tan/
dard I8O FF?9/1. !ueta norma pre&ede una codi'ica c"e riprende una normati&a ,N8I precedente.
I primi 12F caratteri ono identici al codice ,83II.
I nuo&i 12F caratteri ono tati uati per alcuni imboli di monete% egni d.interpun-ione particolari e per le lettere accen/
tate e modi'icate delle lingue europee.
I caratteri dal 12F al 1?9 di I8O FF?9/1 ono eplicitamente indicati come caratteri di controllo.
Sindow ua nella ua rappreenta-ione delle tring"e% il codice I8O FF?9/1% ma olo per tutti i caratteri dal 1?9 in u.
,l di otto del 1?9% Sindow ua alcuni dei codici da 12F a 1?9 per caratteri tampabili.
Per +ueto Sindow non $ completamente compatibile con I8O FF?9/1% ma ua un uo codice c"e il produttore di Sin/
dow c"iama genericamente *,N8I*% en-a peci'icare in numero della norma cui arebbe con'orme.
2ata l.ubi+uit0 di Sindow% la codi'ica *Sindow ,N8I* $ di&entata il modo pi4 uato di codi'icare i caratteri.
#odice Unicode
Per la rappreenta-ione al'anumerica *uni&erale* di tutti i caratteri degli al'abeti umani non batano F bit.
Per +ueto l.I8O "a teo una norma generica per la reali--a-ione di codici al'anumerici% c"e &a otto il nome di I8O
10>E0% c"e de'inice l.(38 @7ni&eral "aracter 6etA.
Il codice (nicode $ tato &iluppato per eere compatibile con l.I8O 10>E0% da un conor-io 'ondato nel 1991.
(nicode $ a 1E bit. ,&endo E??=E imboli eo pu) contenere% almeno in parte% tutti gli al'abeti del mondo. 8i ricorda
c"e l.al'abeto cinee comprende circa >0000 caratteri% ma moltiimi non ono uati praticamente mai e gli tei concet/
ti poono eere eprei con caratteri di uo pi4 comune. (nicode comprende anc"e alcuni et di caratteri peciali per
campi pecialitici% come egni d.interpun-ione o imboli tecnici e matematici% ed al'abeti di lingue antic"e.
I primi 12F caratteri di (nicode ono i normali caratteri ,83II% i uccei&i% 'ino a 2?E% coincidono in gran parte con il
codice ,N8I.
p. 1F di 19 2011/11/2? 01 6ondamenti.odt
Ing. Gabriele MONTI 1999 2010 Numeri www.ingmonti.it
I et di caratteri comprei in (nicode ono di&ii per tipo di carattere% non per lingua. Il tipo di carattere &iene de'inito
*cript* e comprende tutte le &aria-ioni per adattari alle &arie lingue c"e lo uano. Per eempio lo cript *5atin* com/
prende le claic"e lettere codi'icate anc"e nel codice ,83II% ma &iene uato per molte decine di lingue e +uindi com/
prende anc"e la o con i due puntini per il Tedeco o le lettere accentate per l.Italiano. Nella &erione 2.0 (nicode contie/
ne =F FF? di&eri codici e 2? cript.
,lcuni degli cript di (nicode ono7 ,rabic% Kopomo'o ^ F/ ^% 3Hrillic% GreeN% Qebrew% Qiragana% ]ataNana @due tipi di
caratteri giapponei 'oneticiA% 5atin% P"onetic @i imboli c"e i tro&ano nei di-ionari per indicare la pronunciaA%
(na tabella aggiornata dei codici (nicode i pu) tro&are in "ttp7RRwww.unicode.orgR
Il codice (nicode $ utili--ato eRo upportato dai 8itemi Operati&i e dai linguaggi moderni.
Il modo pi4 comune di utili--are i caratteri (nicode $ +uello c"e 'a uo della codi'ica *7TF53*% una &erione com/
prea di (nicode c"e ua F bit per rappreentare i primi 2?E caratteri di (nicode e 1E per gli altri. In +ueto
modo i 'ile c"e contengono olo caratteri ,N8I occupano la met0 di +uelli con *puro (nicode*.
#i possono portare alcuni esempi significativi= le stringhe gestite da >indo:s 8? sono sempre basate su Uni0
code! cos9 come quelle del linnguaggio /@A lo possono essere anche quelle del linguaggio Bava. o stesso codi0
ce sorgente Bava si pu scrivere in Unicode.
>indo:s CD e C- sono basati su stringhe A8#.! ma mettono a disposizione funzionalit5 di conversione ed
utilizzano Unicode in alcune loro funzioni! lo stesso discorso vale per il linguaggio Eisual 2A#./A esistono li0
brerie per il linguaggio /. 8aturalmente tutti i sistemi operativi ed i linguaggi scritti prima che Unicode venis0
se sviluppato! p.es. <# FG# e tutti i linguaggi per applicazioni <# FG# non hanno nessun tipo di supporto
per Unicode e lavorano con codice A#/.. esteso.
(38 @Universal Character SstemA
2ato il numero eorbitante di caratteri delle critture ideogra'ic"e $ tato de'inito un ulteriore tandard% I8O
10E>E% c"e ua > KHte per ciacun imbolo% con la poibilit0 perci) di poter de'inire > Giga di imboli @circa
+uattro miliardiA.
Il ito della I,N, @Internet !ssigne" Numbers !uthoritA contiene ri'erimenti ai tipi di codici eitenti% all_indiri--o
www.ii.eduRin/noteRianaRaignmentRc"aracter/et.
)trin/e
(na stringa $ una ucceione di caratteri al'anumerici% eprei con uno dei codici appena &iti. 2etta in modo un po.
brutale una tringa $ una *critta*. Ogni linguaggio di programma-ione "a il uo modo per rappreentare le tring"e% i
modi poono eere conidere&olmente di&eri. Pi4 a&anti &edremo +ualcoa al riguardo.
roblemi!
Problema eLtraterretre7 Nel notro pianeta alieno gli abitanti di GluN ono molto beneducati e non "anno parolacce nel
loro &ocabolario. Per le targ"e dei loro motora--etti poono mecolare lettere dell.al'abeto e numeri% en-a do&er car/
tare neuna combina-ione di lettere perc"# *con&eniente*. Per *puro cao* "anno un al'abeto con 2E imboli% come in
Italia% e gi0 appiamo c"e "anno 10 imboli per i numeri. 5e targ"e poono +uindi contenere numeri in bae =E. Per 'are
le targ"e de&ono uare il minor numero poibile di ci're% coD tengono meno poto @i motora--etti ono piccoli1A. 8icco/
me de&ono pre&edere di targare 1 000 000 di &eicoli% +uante ci're ci &ogliono per il numeroB
2eterminato il numero di ci're c"e er&ono% +ual $ il numero maimo di motora--etti c"e potranno targare% con le tar/
g"e coD lung"eB
,ltro problema% pi4 *terretre* ed un po. pi4 complicato7 +uante targ"e i poono 'are con l.attuale itema di numera/
-ione delle targ"e automobilitic"e italiane @coniderare c"e &engano uate tutte le lettere% anc"e +uelle c"e danno pro/
blemi *di lettura* come *I*% *O* oppure *!*AB
01 6ondamenti.odt Cer. 0.9.> 2011/11/2? p. 19 di 19