I sistemi di numerazione e i codici posizionali

  • Slides: 23
Download presentation
I sistemi di numerazione e i codici posizionali Decimale, binaria, esadecimale, BCD, ASCII

I sistemi di numerazione e i codici posizionali Decimale, binaria, esadecimale, BCD, ASCII

Introduzione �Tutti i sistemi di numerazione sono posizionali nel senso che le cifre assumono

Introduzione �Tutti i sistemi di numerazione sono posizionali nel senso che le cifre assumono un determinato valore a seconda della posizione occupata all’interno del numero �Es: 245; 24; 2 Il numero 2 ha valori differenti all’interno delle tre cifre

Sistema decimale �Il sistema di numerazione decimale è il sistema di numerazione che abbiamo

Sistema decimale �Il sistema di numerazione decimale è il sistema di numerazione che abbiamo usato fin da piccoli �Utilizza dieci simboli: 0 1 2 3 4 5 6 7 8 9 �Il motivo è legato al numero delle dita delle mani

Il sistema binario �Il sistema binario è quello dei calcolatori �È costuito da due

Il sistema binario �Il sistema binario è quello dei calcolatori �È costuito da due simboli 1 e 0 �La CPU dei calcolatori è costituita fondamentalmente di porte logiche, una sorta di interruttori che possono far passare o meno un segnale elettrico. �Quando un segnale passa, si attribuisce un valore logico 1 altrimenti 0

Dal sistema decimale al sistema binario �Per passare dal sistema decimale al binario, basta

Dal sistema decimale al sistema binario �Per passare dal sistema decimale al binario, basta dividere ripetutamente la parte intera del numero in decimale per 2 e prendere il resto �Es: (134)10 �Il pedice sta ad indicare che ci troviamo in codice binario

Procedimento dal sistema decimale al binario Numero in decimale Quozienti della divisione 134 Resti

Procedimento dal sistema decimale al binario Numero in decimale Quozienti della divisione 134 Resti 0 67 1 33 1 16 0 8 0 4 0 2 0 1 1 Il numero in binario è 10000110 LSB: cifra meno significativa MSB: cifra più significativa

Dal sistema decimale al binario �Si noti che, se il numero è pari, termina

Dal sistema decimale al binario �Si noti che, se il numero è pari, termina con lo zero, se è dispari termina con 1 �Le potenze di 2 sono date da 1 seguito da un numero di zeri uguali all’esponente di 2 Es (8)10=(23)10=(1000)2 �Tutti i numeri che precedono una potenza di due sono dati da un numero di 1 uguale all’esponente di 2 Es (15)10=(24 -1)10=(1111)2

Dal sistema decimale al binario �Se il numero in base dieci è formato da

Dal sistema decimale al binario �Se il numero in base dieci è formato da una parte intera e da una parte decimale, il procedimento per passare alla base decimale è il seguente: 1. La parte intera si trasforma normalmente con divisioni successive per 2 2. La parte decimale, viene isolata e moltiplicata per due in successione prendendo poi, solo la parte intera dei prodotti successivi ES

Dal sistema decimale al binario � 45, 247 � 45: 2= 24 resto 1;

Dal sistema decimale al binario � 45, 247 � 45: 2= 24 resto 1; 24: 2=12 resto 0; 12: 2=6 resto 0; 6: 2=3 resto 0; 3: 2=1 resto 1; 1: 2=0 resto 1 4510=1100012 � 0, 247*2=0, 494; 0. 494*2=0, 988; 0, 988*2=1, 978; 0, 978*2=1, 956; 0. 956*2=1, 912…. . �La parte decimale sarà: 0, 00111 �Il numero trasformato in binario: 110001, 00111

Dal sistema binario al sistema decimale �Per passare dal sistema binario al decimale basta

Dal sistema binario al sistema decimale �Per passare dal sistema binario al decimale basta moltiplicare le cifre del numero in binario per le potenze crescenti di due a partire dalla cifra meno significativa �Es: 11100=0*20+0*21+1*22+1*23+0*24+ +0*25+1*26+1*27+1*28=0+0+4+8+64+128+256 =460 �Se il numero in binario è munito anche di parte decimale, bisogna moltiplicare la parte decimale per potenze di due con esponente negativo. � 10, 1101=0*20+1*21+1*2 -2+0*2 -3+1*2 -4

Operazioni con i numeri somma binari Sottrazione § 0+0=0 § 1+0=0 § 1+1=10 •

Operazioni con i numeri somma binari Sottrazione § 0+0=0 § 1+0=0 § 1+1=10 • se sottraendo ha un numero di bit più piccolo del minuendo, si aggiungono degli zeri come cifre più significative per eguagliare il numero di bit. • si fa il complemento a 1 e poi il complemento a 2 del sottraendo. Es: Con il complemento a 1 si trasformano in 1 gli zeri e 1 in zero; il numero così complementato viene aggiunto a 1100100+ 1 ottenendo il complemento a 2 1001110= • Il minuendo viene sommato al complemento a 2 del sottraendo. Del risultato si toglie la prima cifra Dalla meno significativa. significativ Es: 110011100 -10011101 a: 0100110 Minuendo: 110011100 1 Sottraendo: 010011101 (notare che è stato aggiunto uno zero per eguagliare il numero di bit) Compl a 1=101100010 10110010 Compl a 2=101100010+1=101100011100+101100011=101111

Sistema esadecimale �Il sistema esadecimale è formato da 16 simboli: 0 123456789 ABCDEF �Per

Sistema esadecimale �Il sistema esadecimale è formato da 16 simboli: 0 123456789 ABCDEF �Per passare dal sistema decimale al sistema binario bisogna fare le stesse operazioni effettuate per passare dal decimale al binario. Bisogna cioè dividere in successione il numero per 16 e prendere i resti �Es: 56123 � 56123: 16=3507 resto 11=B; 3507: 16=214 resto 3; 214: 16=13 resto 6; 13: 16=0 resto 13=D D 63 B

Dal sistema esadecimale al sistema decimale e binario • Per passare dal sistema esadecimale

Dal sistema esadecimale al sistema decimale e binario • Per passare dal sistema esadecimale al sistema decimale basta moltiplicare le cifre del numero in esadecimale per le potenze crescenti di sedici a partire dalla cifra meno significativa Es: 48 fcd= 13*160+12*161+15*162+8*163+4*164 • Per passare dal sistema esadecimale al sistema binario, basta trasformare in binario ogni singola cifra indipendentemente dalla posizione occupata. Ogni cifra deve però occupare sempre quattro bit. Si deve però partire dalla cifra pù significativa perché nella trasformazione in binario, la posizione ha importanza. Es: 48 fcd= 0100 1000 1111 1100 1101 4 8 15 12 13 • Per passare dal sistema binario al sistema esadecimale, basta dividere il numero binario in gruppi di quattro bit a partire dalla cifra meno significativa e, trasformare ogni gruppo in esadecimale Es: 1 0011 1111 0000 0111= 13 f 07

Rappresentazione dei numeri reali �I numeri reale possono essere in virgola fissa o in

Rappresentazione dei numeri reali �I numeri reale possono essere in virgola fissa o in virgola mobile �Nel primo caso, il numero di cifre significative è ben stabilito e non si può cambiare durante le operazioni �Nelle operazioni in virgola mobile, le cifre significative possono cambiare e, se un’operazione da come risultato un valore con un numero di cifre significative più alto rispetto agli operandi, non si hanno approssimazioni

Rappresentazione dei numeri reali �Ogni numero reale può essere rappresentato nel seguente modo: (-1)s.

Rappresentazione dei numeri reali �Ogni numero reale può essere rappresentato nel seguente modo: (-1)s. M*BE S è il segno: 0 se il numero è positivo, 1 se il segno è negativo M è la mantissa B è la base E è l’esponente

Rappresentazione dei numeri reali �Per meglio rappresentare i numeri con esponente sia positivo che

Rappresentazione dei numeri reali �Per meglio rappresentare i numeri con esponente sia positivo che negativo, si ricorre ad una strategia: all’esponente si pone sempre un valore costante detto bias= 127 �In questo modo, se si ha un esponente negativo, l’esponente risultante sarà minore di 127, altrimenti, sarà maggiore �La parte intera deve essere sempre 1 �Nella mantissa si mettono tutte le cifre escluso la parte intera che si conosce già = 1

Esempi di rappresentazione di numeri reali � 110011111001=1, 10011111001*211= =1, 10011111001*211+127=139 �-0, 0011100101=1, 1100101*2

Esempi di rappresentazione di numeri reali � 110011111001=1, 10011111001*211= =1, 10011111001*211+127=139 �-0, 0011100101=1, 1100101*2 -3= =1, 1100101*2 -3+127=124 �Possiamo costruire la seguente tabella: segno mantissa esponente 0 10011111001 139 1 1100101 124

BCD Bynary Code Decimal �I numeri decimali da 0 a 9 vengono scritti a

BCD Bynary Code Decimal �I numeri decimali da 0 a 9 vengono scritti a 4 bit Numero decimale Cifre bimnarie 0 0 0 1 2 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1

Numeri in base dieci a più cifre in BCD �Un numero in base 10

Numeri in base dieci a più cifre in BCD �Un numero in base 10 a più cifre tipo 324, viene espresso in BCD nel seguente modo: �(3)10=(0011)BCD �(2)10=(0010)BCD �(4)10=(0100)BCD � (324)10=(001100100100)BCD

Codice ASCII �ASCIII è un acronimo e sta per: American Standard Code for Information

Codice ASCII �ASCIII è un acronimo e sta per: American Standard Code for Information Interchange Proposto nel 1963 da Bob Benner un ingegnere dell’IBM. Il codice originale è a 7 bit ma quello esteso con i codici asiatici è a 8 bit. Il primo codice è di 127 caratteri, quello esteso è di 256 caratteri, quella utilizzata da windows attualmente; Non tutti sono printable, alcuni sono di controllo. Per ottenere i codici ascii dal numero, basta tenere premuto il tasto ALT+numero

Tabella ASCII-spiegazione � Da 1 a 31 e 127 Caratteri non stampabili, es segnale

Tabella ASCII-spiegazione � Da 1 a 31 e 127 Caratteri non stampabili, es segnale acustico, carattere vuoto. � Da 32 (0010 0000) a 47 Il carattere spazio (32) e i segni di punteggiatura. � Da 48 (0011 0000) a 57 Cifre da 0 a 9. � Da 58 (0010 0000) a 64 Altri segni di punteggiatura quali: due punti, maggiore, uguale, minore. � Da 65 (0100 0001) a 90 Lettere maiuscole. � Da 91 (0101 1011) a 96 Altri segni di punteggiatura: per esempio, apostrofo, parentesi quadre. � Da 97 (0110 0001) a 122 Lettere minuscole. � Da 123 (0111 1011) a 126 Altri segni di punteggiatura: per esempio, parentesi graffe, tilde.

Tabella Ascii

Tabella Ascii

Unicode �La codifica con unicode permette di rappresentare anche i caratteri asiatici. � È

Unicode �La codifica con unicode permette di rappresentare anche i caratteri asiatici. � È previsto l'uso di codifiche con unità da 8 bit o byte, 16 bit o word e 32 bit o double word, descritte rispettivamente come UTF-8, UTF 16 e UTF-32.