View Full Version : [c - java]Variabili in notazione esadecimale
Vorrei un po' di chiarezza per le variabili in notazione esadecimale:
trovo in diversi programmi sia c che java delle variabili int = 0x123...
Cosa significano?
la notazione esadecimale se non sbaglio è appunto in base 16 e utilizza caratteri 0123456789ABCDEF
Potete darmi qualche spiegazione? grazie
banryu79
05-08-2009, 10:38
Semplice per distinguere un letterale intero espresso in base esadecimale si specifica il letterale ponendo il prefisso "0X" o "0x" (ZERO - X, in Java, la X può essere sia upper che lower case, così come le lettere a-f che si usano per i valori esadecimali).
Questo per evitare fraintendimenti, ad esempio:
// a vale 51 in base decimale
int a = 51;
// a vale 51 in base esadecimale (corrisponde al valore 81 in base decimale)
// è grazie al prefisso "0x" che si specifica che il letterale intero è espresso in base esadecimale
int a = 0x51;
goldorak
05-08-2009, 10:45
Non capisco quale sia il problema.
I numeri esadecimali usano appunto 16 cifre (0-9, A,B,C,D,E,F).
Devi avere un modo per indicare al computer che un certo numero va interpretato come esadecimale, oppure ottale oppure in base decimale.
Ad esempio se scrivo
int x = 35 ; e' implicito che 35 e' scritto in base 10
int x = 0x23 ; e' un numero esadecimale che rappresenta 35 in base 10. Perche' ? Perche' 0x23 = 2*16^1 + 3 = 32 + 3 = 35.
Se scrivi 0xACE e' un numero esadecimale che rappresenta il valore 10*16^2+12*16+14 = 2766 in base 10.
Lo 0x che metti davanti al numero serve per indicare al compilatore java o c che il numero che segue va interpretato come esadecimale. Tutto qui, non e' niente di complicato.
Non potevo chiedere spiegazione migliore, non sapevo che lo ox indicasse come leggere l'intero.
Grazie ancora.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.