Aritmetica di macchina
Introduzione
Aritmetica di macchinax ∈ ℝ x = K infinite cifre nella parte frazionaria. Lo numero in base 10 X10 = Xm*10-1 + Xm-1*10-2 + ... X-4*10-4. X2 = Xm2n + Xm4*2-n-4.
Passaggio da base 2 a base 10
X2 = 101,01
Passaggio da base 10 a base 2
X10 = 5.25
Parte intera: 5: 2 = 2, 2: 1 = 1
Parte frazionaria: 0.25: 2 = 0.5, 0.5: 2 = 1.0, 0.2: 2 = 0.4.
X2 = 101.01
Esempio
X10 = 1/10 (0.1)10 = [0.0001100110011...]2
Numeri in base 10 e base 2
Aritmetica di macchinax ∈ ℝ x = K infinite cifre nella parte frazionaria. Lo numero in base 10 X10 = 1032.57 = 1.103 + 0.103 + 3.101 + 2.100 + 5.10-1 + 7.10-2. Il calcolatore funziona in base 2 ed esegue tutte le operazioni in base 2.
Conversione tra basi
X2 = Xm2n + Xm-12n-1 ... X020 + X12-1 + X22-2 dove Xm, Xm-1, ... sono 0 o 1 (Fino all'intero e precedente alla base).
Passaggio da base 2 a base 10 X2 = 101.01 = 1.22 + 0.21 + 1.20 + 0.1.2-1 + 1.2-2 4 + 0 + 1 + 0.2510 (5.25)10.
Dettaglio delle conversioni
Passaggio da base 10 a base 2 X10 = 5.25 = 5 + 0.25 → parte frazionaria + parte intera.
- Parte intera: 5 : 2 = 2 resto 1 → X0
- 2 : 2 = 1 resto 0 → X1
- 1 : 2 = 0 resto 1 → X2
- Parte frazionaria: 0.25.2 = 0.5 parte intera = 0 → X1
- 0.5.2 = 1.0 parte intera = 1 → X2
- 0.0.2 = 0.0 parte intera = 0 → X3
X2 = 101.01
Esempi di conversione
Esempio: X10 = 1/10 = 0.1 numero con finite cifre decimalip.
- p.1 0:2 = 0 resto 0 = X0
- pf 0.4.2 = 0.2 parte intera = 0 = X1
- 0.2.2 = 0.4 parte intera = 0 → X2
- 0.4.2 = 0.8 parte intera = 0 → X3
- 0.8.2 = 1.6 parte intera = 1 → X4
- 0.6.2 = 1.2 parte intera = 1 → X5
- 0.2.2 = 0.4 parte intera = 0 → X6
(0,1)10 = [0.0001100110011...]2 |0.0001|... effetto di errore nel calcolatore
Rappresentazione in virgola mobile
Rappresentazione in Virgola Mobile Normalizzata Standard IEEE
X0 = 525.35 = 52.53 ∙ 101 = 5.2535 ∙ 102 = 5253.5 ∙ 10-1
X10 = (segno) f base e esponente
f: parte intera 1.cifre per la parte intera
1e ∈ NX = 1.f ∙ 2e
Esempi di rappresentazione
- Scrivere il numero 1.000100102 in base 10.
- Scrivere il numero (765.625)10 in base 2.
1 ∙ 27 + 0 ∙ 26 + 0 ∙ 25 + 0.24 + 1 ∙ 23 + 0 ∙ 22 + 0 ∙ 21 + 0 ∙ 2-1 + 0 ∙ 2-2 + 1 ∙ 2-3
27 + 23 + 2-4 = 128 + 8 + 0.25 = [136.25]10
Parte intera: 765:2 = 382 resto 1 Parte decimale: 0.625 parte intera.
Dettagli sulla rappresentazione in floating point
Tutti i calcolatori f = ±f1, f2, …, fn ed e = ±e1, e2, … ee.
Abbiamo n cifre per la mantissa in base 2 e WHO per esponente. Le cifre vengono chiamate bits (binary digits).
Un numero in floating point viene così descritto.
- X = ±1 ∙ 2e ∙ (x0∙ 2-1 + x1∙ 2-2 + x2∙ 2-3 + … + xn∙ 2-n)
1 bit: 0/1 “sì/no”.
f0 non viene messo in memoria poiché sempre uguale, ma c’è!
Può essere schematizzato nel seguente modo:
Segno, cifre dell'esponente, cifre della mantissa. Ogni cella rappresenta un bit, di conseguenza può essere 0 oppure 1.
dx nonché lo spazio per memorizzare il numero.
Viene messo prima l'esponente della mantissa poiché se si vogliono confrontare due numeri, il primo andiamo a confrontare l'ordine di grandezza (e quindi l'esponente) e poi la parte decimale (i.e. la mantissa).
Abbiamo quindi 1 cella per il segno, n celle per l'esponente, n celle per la mantissa.
Le cellatte vengono assegnate in base a dei compromessi: bits, singola precisione di cui 32, doppia precisione 64 di cui.
Gli esponenti possono essere positivi o negativi (5.96 • 104; 5.96 • 10-4) ma vengono memorizzati nel calcolatore solo positivi → è necessario un metodo in modo che rappresenti gli esponenti negativi.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Riassunto esame Calcolo numerico, Prof. Mazzia Annamaria, libro consigliato Programmare con Matlab, Mazzia Annamari…
-
Dimostrazioni Teoremi corso Calcolo numerico (Prof. Mazzia)
-
Riassunto esame Calcolo numerico e programmazione, Prof. Giannelli Carlotta, libro consigliato Calcolo numerico, Lu…
-
Riassunto esame Calcolo Numerico, Prof. Bellanca Nicolò, libro consigliato Elementi di calcolo numerico: metodi e a…