Rappresentazione dei numeri ed aritmetica di Rappresentazione dei numeri ed aritmetica di base . Codifiche

  • View
    0

  • Download
    0

Embed Size (px)

Text of Rappresentazione dei numeri ed aritmetica di Rappresentazione dei numeri ed aritmetica di base ....

  • Rappresentazione dei numeri ed aritmetica di base

  • Codifiche dei numeri, agenda

    • Codifica “naturale” – Mediante il Sistema di Numerazione Posizionale (S.N.P.), in base 2 – Adatto solo per numeri naturali (interi positivi)

    • Modulo e Segno – Un bit per il segno, gli altri per il modulo in SNP – Solo interesse teorico

    • Complemento a 2 – Codifica mediante SNP “non puro” – Ampiamente usata per le proprietà aritmetiche (facilita circuiti di calcolo)

    • Virgola mobile – Numeri reali – Standard IEEE 754, ampiamente usato

    Calcolatori Elettronici, Beraldi, 19/20

    Interi

    Reali

    Naturali

  • Numeri e numerali

    Numero

    Numerale Numerale

    Rappresentazione

    Interpretazione

    Trasformazione fra Rappresentazioni

    Esempio numerali: “dodici”, 12, XII, 0xC

    Entità astratta

    Analogia: gatto e cat denotano lo stesso “oggetto” in due lingue differenti

    Calcolatori Elettronici, Beraldi, 19/20

  • Sistema di Numerazione Posizionale, richiami

    • E’ definito da una coppia (A,B) dove: – B>1 è un intero, detto base del sistema, ed A un insieme di simboli

    distinti, le cifre , con |A|=B – sistema decimale, B=10, A={0,1,2,3,4,5,6,7,8,9} – sistema binario, B=2, A={0,1} – sistema ottale, B=8, A={0,1,2,3,4,5,6,7} – sistema esadecimale, B=16, A={0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}

    • Ogni cifra rappresenta un numero distinto compreso fra 0 e B-1

    • 1à “uno”, 2à”due”

    • Interpretazione mentale immediata

    Calcolatori Elettronici, Beraldi, 19/20

  • Sistema Numerazione Posizionale , richiami

    • Un valore numerico è rappresento da una sequenza di cifre (allineamento) appartenenti ad A

    dk-1..d2d1d0.d-1d-2…d-p …

    • PARTE-INTERA.PARTE-FRAZIONARIA

    • L’indice associato alla cifra denota la posizione della cifra • La posizione esprime il peso della cifra

    – Valore di di= V(di) = di x Bi

    Calcolatori Elettronici, Beraldi, 19/20

  • Esempio: sistema decimale (base 10)

    • 10 cifre, A={0,1,2,3,4,5,6,7,8,9} • Esempio: 743.234

    – d2=7, d1=4, d0=3 – V(743) = 7 x 102 + 4 x 10 + 3 – V(0.234) = 2 x 10-1 + 3 x 10-2 + 4 x 10-3

    103 102 101 100 10-1 10-2 10-3

    Calcolatori Elettronici, Beraldi, 19/20

    1000 100 10 1 0.1 0.01 0.001

  • Notazione

    • Per evidenziare la base B del sistema di numerazione si usa la seguente notazione

    • (…)B (B in base 10!)

    • Negli esempi seguenti, se omessa vale 10 • La cifra più a sinistra è detta cifra più significativa, quella a destra cifra

    meno significativa – Se B=2 si usano gli acronimi MSB (Most Significant Bit) ed LSB (Least

    Significant Bit)

    Calcolatori Elettronici, Beraldi, 19/20

  • Sistema Binario (base 2)

    •Utilizzato dai circuiti elettronici dei calcolatori

    •2 cifre (bit) d Î A = {0,1}

    V(N) = dk-1 x 2k-1 + dk-2 x 2k-2 +.....+ d1 x 21 + d0 x 20 + d-1 x 2-1 +......+ d-p x 2-p

    (1010.101)2 = 1 x 23 + 1 x 21 + 1 x 2-1 + 1 x 2-3 = (10.625)10

    23 22 21 20 2-1 2-2 2-3

    8 4 2 1 0.5 0.25 0.125 Calcolatori Elettronici, Beraldi, 19/20

  • Potenze di 2 ricorrenti

    • 22=4 • 23=8 • 24=16 • 25=32 • 26=64 • 27=128 • 28=256 • 29=512 • 210=1024 (K) K=Kilo • 220 = 1024K (M) M=Mega • 230 = 1024M (G) G=Giga • 240 = 1024G (T) =Tera • 250 = 1024T (P) =Peta

    • 216=65536 = 64 K • 232= 4 G

    Calcolatori Elettronici, Beraldi, 19/20

  • Altre basi notevoli Basi 8 e 16

    • Esempio: – (721)8à 7 x 82 + 2 x 81 + 1 x 80 = 7x64 + 16 + 1 = 448 +17=(465)10 – (0.1)8à 1/8 = (0.125)10

    • Esempio: – (721)16 à 7 x 162 + 2 x 161 + 1 x 160 = 7x 256 + 32 + 1 = 1792 + 33 =

    (1825)10 – (0.1)16 à 1/16 = (0.0625)10

    • Nota: nel caso rappresentazioni esadecimali è prassi anteporre 0x, oppure il suffisso H

    – Ex: 0x721, 721H

    Calcolatori Elettronici, Beraldi, 19/20

  • Conversione da una base ad un’altra

    • Problema: dato un valore rappresentato dall’allineamento N in base B1 trovare la rappresentazione N’ in base B2

    • (N)B1 ® (N’)B2

    • Nel seguito, se chiaro dal contesto, N denota sia il valore che l’allineamento di cifre

    • Bisogna convertire separatamente le parti intera (NI) e frazionaria (NF)

    – (N)B1=(NI.NF)B1 – (NI)B1 ® (N’I)B2 – (NF)B1 ® (N’F)B2

    Calcolatori Elettronici, Beraldi, 19/20

  • Conversione

    • I metodi dipendono dalla scelta di usare la base di partenza (B1) o quella di arrivo (B2)

    • Poiché si ha familiarità con la base B=10 quando una delle due basi è 10, allora si sceglierà il metodo che consente di lavorare in tale base – Casi notevoli

    • B1¹10 e B2=10 (già visto) • B1=10 , B2¹10 • B2=B1k

    Calcolatori Elettronici, Beraldi, 19/20

  • Conversione da base 10 a B, N>0 ed intero

    • Usiamo la seguente osservazione: in generale possiamo affermare che per ogni intero B (1

  • N intero da convertire, B base di arrivo

    iß0; while N0 do

    1. diß N mod B 2. NßN/B 3. ißi+1

    endwhile

    Esempio: (25)10 = (??)2

    (25)10 = (11001)2

    Algoritmo di Conversione da base 10 a B, N>0 ed intero

    N N / 2 N mod 2 Cifra

    25 12 1 d0=1 12 6 0 d1=0

    6 3 0 d2=0

    3 1 1 d3=1

    1 0 1 d4=1

    Calcolatori Elettronici, Beraldi, 19/20

  • N N / 16 R mod 16 Cifra

    30 1 14 d0=E

    1 0 1 d1=1

    (30)10 = (??)16

    (30)10 = (1E)16 =0x1E

    Altro esempio

    N N/2 R mod 2 Cifra

    30 15 0 d0=0

    15 7 1 d1=1

    7 3 1 d2=1

    3 1 1 d3=1

    1 0 1 d4=1

    (30)10 = (11110)2

    Calcolatori Elettronici, Beraldi, 19/20

    Notaà 0xE=(1110)2

  • Metodo “diretto” di conversione da base 10 a B

    • Dato N individuare direttamente le potenze nella base B

    Esempio: • rappresentare 27 in base B=2:

    – 16+8+2+1 => (11011)2

    • Osservazione: • LSB=0 ó pari; LSB=1 ó dispari • Valore massimo = 111….1 = 2K-1 (K bit pari ad 1)

    Calcolatori Elettronici, Beraldi, 19/20

  • Relazione fra le basi 2/8/16

    (E54)16

    (1110 0101 0100)2

    (621)8

    (110 010 001)2

    (E54)16 (1110 0101 0100)2 (111 001 010 100)2 (7124)8

    Da base 16(2) a 2(16)

    Da base 8(2) a 2(8)

    Da base 16(8) a 8(16) Calcolatori Elettronici, Beraldi, 19/20

  • Conversione da base 10 a B, N

  • N0 and i£m do

    1. d-i ß trunc (NB); 2. NßNB - d-i; 3. Ißi+1

    endwhile

    Algoritmo di conversione da base 10 a B, N

  • Esempio: (12.25)10 ® (..)2

    • 12/2 = 6 resto 0 ® d0=0 • 6/2 = 3 resto 0 ® d1=0 • 3/2 = 1 resto 1 ® d2=1 • 1/2 = 0 resto 1 ® d3=1

    • 0.25 x 2 = 0.50, parte intera 0 ® d-1=0 • 0.50 x 2 = 1.0, parte intera 1 ® d-2=1

    (12.25)10 ® (1100.01)2

    Calcolatori Elettronici, Beraldi, 19/20

  • N 2N Trunc(2N) Cifra

    0.2 0.4 0 d-1=0

    0.4 0.8 0 d-2 =0

    0.8 1.6 1 d-3 =1

    0.6 1.2 1 d-4 =1

    0.2

    Esempio: (0.2)10 = (??)2

    (0.2)10 = (0.0011)2

    Esempio numeri periodici

    Calcolatori Elettronici, Beraldi, 19/20

  • Esercizio

    • Esprimere in base 10 il numero periodico (0,10)2

    Calcolatori Elettronici, Beraldi, 19/20

  • Riepilogo

    10 B¹10

    prodotti successivi (N

  • Codifica naturale

    • Esprime il numero mediante il sistema posizionale usando una stringa di bit…

    • Un bit b rappresenta una cifra binaria – Il bit b=1 rappresenta la cifra binaria 1 e b=0 la cifra 0 –

  • Numeri interi, Modulo e segno

    • E’ il più immediato da comprendere – Si dedica un bit al segno ed i rimanenti al modulo – Di regola 1 denota il segno -

    • Esempio

    – -15 à |15| = (1111)2 à -15 = (11111)2 – 15 à (01111)2

    • Con k bit l’intervallo di dei valori rappresentabili è S=[-2k-1-1,..,2k-1-1] – Doppia rappresentazione di 0

    Calcolatori Elettronici, Beraldi, 19/20

  • Complemento a 2

    • Fissato un numero k>1 di cifre binarie, il complemento a 2 su k bit di un intero N, N Î S={-2K-1 ,..2K-1 –1} , è

    N 0£ N £2K-1 –1 C(k,N)=

    2k-|N| -2K-1£ N £–1

    Calcolatori Elettronici, Beraldi, 19/20

    •Una definizione alternativa è C(k,N) = (N + 2k) mod 2k

  • Algoritmo di conversione…

    • Sia N il negato di N ed N’ il complemento su k bit.. • N’+N=2k

    • N + N + 1 = 2k

    • Pertanto, N’ = N +1

    Calcolatori Elettronici, Beraldi, 19/20

    _

    _

    _

  • Un “regolo” per i calcoli in complemento

    2 - 3 ® (2+5) mod 8 = 7 mod 8 = 7 ® -1 3 – 2 ® (3+6) mod 8 = 9 mod 8 = 1 ® 1 -1 - 3 ® (7 + 5) mod 8 à 12 mod 8 = 4 ® -4

    7

    0

    1

    2

    4

    5

    6

    3

    0 1

    2

    3-4

    -1

    -2

    -3

    0 0 1 1 2 2 3 3 -4 4 -3 5 -2 6 -1 7

    N C (3,N)

    complemento