30
Variabili e memoria Laboratorio di Calcolo

Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Variabili e memoria

Laboratorio di Calcolo

Page 2: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Variabili e costanti

a = 2;

b = 3.5;

c = 2.;

0xffffa000

0xffffa001

0xffffa002 00000010

0xffffa003

0xffffa004

0xffffa005

0xffffa006

0xffffa007

06/10/2008 2Laboratorio di Calcolo - Organtini

Page 3: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Variabili e costanti

a = 2;

b = 3.5;

c = 2.;

Nota: per brevità

le variabili intere

sono rappresentate

usando solo 8 bit

0xffffa000

0xffffa001

0xffffa002 00000010

0xffffa003

0xffffa004

0xffffa005

0xffffa006

0xffffa007

06/10/2008 3Laboratorio di Calcolo - Organtini

Page 4: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Variabili e costanti

a = 2;

b = 3.5;

c = 2.;

0xffffa000

0xffffa001

0xffffa002 00000010

0xffffa003 01000000

0xffffa004 01100000

0xffffa005 00000000

0xffffa006 00000000

0xffffa007

3.5 = (1 + 0.75)*21

06/10/2008 4Laboratorio di Calcolo - Organtini

Page 5: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Variabili e costanti

a = 2;

b = 3.5;

c = 2.;

0xffffa002 00000010

0xffffa003 01000000

0xffffa004 01100000

0xffffa005 00000000

0xffffa006 00000000

0xffffa007 01000000

0xffffa008 00000000

0xffffa009 00000000

0xffffa00a 000000002. = (1 + 0)*21

06/10/2008 5Laboratorio di Calcolo - Organtini

Page 6: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Variabili e costanti

a = 2;

b = 3.5;

c = 2.;

d = „f‟;

0xffffa003 01000000

0xffffa004 01100000

0xffffa005 00000000

0xffffa006 00000000

0xffffa007 01000000

0xffffa008 00000000

0xffffa009 00000000

0xffffa00a 00000000

0xffffa00b 01100110f ↔ 102 (6616)

06/10/2008 6Laboratorio di Calcolo - Organtini

Page 7: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Operatori matematici

c = a + b;

0xffffa002 00000010

0xffffa003 01000000

0xffffa004 01100000

0xffffa005 00000000

0xffffa006 00000000

0xffffa007 01000000

0xffffa008 00000000

0xffffa009 00000000

0xffffa00a 00000000

06/10/2008 7Laboratorio di Calcolo - Organtini

Page 8: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Operatori matematici

c = a + b;

Nota: nel registro della

CPU il numero 2 viene “promosso” a float

0xffffa002 00000010

0xffffa003 01000000

0xffffa004 01100000

0xffffa005 00000000

0xffffa006 00000000

0xffffa007 01000000

0xffffa008 00000000

0xffffa009 00000000

0xffffa00a 00000000

06/10/2008 8Laboratorio di Calcolo - Organtini

Page 9: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Operatori matematici

c = a + b;

0xffffa002 00000010

0xffffa003 01000000

0xffffa004 01100000

0xffffa005 00000000

0xffffa006 00000000

0xffffa007 01000000

0xffffa008 00000000

0xffffa009 00000000

0xffffa00a 00000000

06/10/2008 9Laboratorio di Calcolo - Organtini

Page 10: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Operatori matematici

c = a + b;

0xffffa002 00000010

0xffffa003 01000000

0xffffa004 01100000

0xffffa005 00000000

0xffffa006 00000000

0xffffa007 01000000

0xffffa008 10110000

0xffffa009 00000000

0xffffa00a 00000000

5.5 = (1 + 0.375)*22

06/10/2008 10Laboratorio di Calcolo - Organtini

Page 11: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Operatori speciali

a = 2;

b = ++a;

0xffffa002 00000010

0xffffa003

06/10/2008 11Laboratorio di Calcolo - Organtini

Page 12: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Operatori speciali

a = 2;

b = ++a;

0xffffa002 00000011

0xffffa003 00000011

06/10/2008 12Laboratorio di Calcolo - Organtini

Page 13: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Operatori speciali

a = 2;

b = ++a;

a = 2;

b = a++;

0xffffa002 00000010

0xffffa003

06/10/2008 13Laboratorio di Calcolo - Organtini

Page 14: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Operatori speciali

a = 2;

b = ++a;

a = 2;

b = a++;

0xffffa002 00000011

0xffffa003 00000010

06/10/2008 14Laboratorio di Calcolo - Organtini

Page 15: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Programmi e variabili

main() {

float tc, tf = 90., conv;

float offset = 32.;

conv = 5./9.;

tc = (tf – offset) * conv;

}

? 90. ?

tc tf conv06/10/2008 15Laboratorio di Calcolo - Organtini

Page 16: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Programmi e variabili

main() {

float tc, tf = 90., conv;

float offset = 32.;

conv = 5./9.;

tc = (tf – offset) * conv;

}

? 90. ? 32.

tc tf conv offset06/10/2008 16Laboratorio di Calcolo - Organtini

Page 17: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Programmi e variabili

main() {

float tc, tf = 90., conv;

float offset = 32.;

conv = 5./9.;

tc = (tf – offset) * conv;

}

? 90. 0.555 32.

tc tf conv offset06/10/2008 17Laboratorio di Calcolo - Organtini

Page 18: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Programmi e variabili

main() {

float tc, tf = 90., conv;

float offset = 32.;

conv = 5./9.;

tc = (tf – offset) * conv;

}

32.22 90. 0.555 32.

tc tf conv offset06/10/2008 18Laboratorio di Calcolo - Organtini

Page 19: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Test

• Cosa accade se eseguo il programma?

• Nulla, perché non ci sono istruzioni di output!

06/10/2008 19Laboratorio di Calcolo - Organtini

Page 20: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Input/Output

scanf(“%f”, &tf);

06/10/2008 20Laboratorio di Calcolo - Organtini

Page 21: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Input/Output

scanf(“%f”, &tf);

90

06/10/2008 21Laboratorio di Calcolo - Organtini

Page 22: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Input/Output

scanf(“%lf”, &tf);

90 = (1+0.40625)26

010000101011010000000000...

06/10/2008 22Laboratorio di Calcolo - Organtini

Page 23: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Input/Output

scanf(“%lf”, &tf);

90.

90 = (1+0.40625)26

010000101011010000000000...

06/10/2008 23Laboratorio di Calcolo - Organtini

Page 24: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Input/Output

printf(“%f F = %f C\n”, tf, tc);

06/10/2008 24Laboratorio di Calcolo - Organtini

Page 25: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Input/Output

printf(“%f F = %f C\n”, tf, tc);

06/10/2008 25Laboratorio di Calcolo - Organtini

Page 26: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Input/Output

printf(“%f F = %f C\n”, tf, tc);

90.000000 F = ...

06/10/2008 26Laboratorio di Calcolo - Organtini

Page 27: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Input/Output

printf(“%f F = %f C\n”, tf, tc);

90.000000 F = 32.222222 C...

06/10/2008 27Laboratorio di Calcolo - Organtini

Page 28: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Input/Output

printf(“%f F = %f C\n”, tf, tc);

90.000000 F = 32.222222 C

>

06/10/2008 28Laboratorio di Calcolo - Organtini

Page 29: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Importanza della rappresentazione

(tc – offset) * 5./ 9.;

(tc – offset) * 5./ 9;

(tc – offset) * 5 / 9;

5 / 9 * (tf – offset);

06/10/2008 29Laboratorio di Calcolo - Organtini

Page 30: Laboratorio di Calcolo · 2008-10-06 · 90.000000 F = 32.222222 C > Laboratorio di Calcolo - Organtini 06/10/2008 28. Importanza della rappresentazione (tc ... Diapositiva 1 Author:

Direttive

#include

Consente di includere il contenuto di un altro

file

#define

Definisce un simbolo (Attenzione!!!)

#ifdef, #ifndef, #else

Compilazione condizionale

06/10/2008 30Laboratorio di Calcolo - Organtini