|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Sep 2001
Messaggi: 181
|
c assegnazione numeri con lo 0 iniziale
Ragazzi chi mi spiega il motivo per cui l'assegnazione ad una variabile intera di un numero che inizia per 0 fa cambiare il significato numerico alla variabile.
Mi spiego meglio: supponendo di dichiarare ed assegnare due variabili(int e/o unsigned int) come segue: int pippo = 50; int pluto = 050; e/o unsgned int paperino = 15; unsgned int zioPap = 015; cosa succede dal punto di vista della rappresentazione macchina?perche' risultano diversi?? il risultato ottenuto se si procede a stampare i numeri e il seguente: printf("pippo = %d\n",pippo); ===> pippo = 50 printf("pluto = %d\n",pluto); ===> pluto = 40 Non mi ricordo bene ma...qualcosa del genere l'affrontai gia' qualche anno fa ma adesso mi sfugge. Help me! |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Sep 2001
Messaggi: 181
|
Scrivendo il post e riflettendo a quando avevo affrontato sto problema, mi sono ricordato...grazie cmq!
Se a qualcuno interessa il motivo e' che Le costanti appartenenti ai tipi integer e parenti possono essere espresse sia in notazione decimale (come nel primo caso di assegnazione), sia in notazione esadecimale (anteponendo i caratteri 0x o 0X al valore) sia in notazione ottale (anteponendo uno 0 al valore) Ecco quindi spiegato, infatti 50 in ottale e' priprio 40 in decimale! |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Villanova di Guidonia (RM)
Messaggi: 1079
|
Se aggiungi uno 0 davanti a un numero quello si trasforma in un numero in base 8. Ricorda anche che se aggiungi 0x diventa un numero in base 16.
Ciao Ops non mi ero accorto che ti eri già risposto da solo |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:34.



















