|
|
|
![]() |
|
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: 17:57.