|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Apr 2007
Messaggi: 153
|
[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 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
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: Codice:
// 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;
__________________
As long as you are basically literate in programming, you should be able to express any logical relationship you understand. If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it. (Chris Crawford) Ultima modifica di banryu79 : 05-08-2009 alle 10:42. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Apr 2003
Messaggi: 16462
|
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.
__________________
MICROSOFT : Violating your privacy is our priority |
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Apr 2007
Messaggi: 153
|
Non potevo chiedere spiegazione migliore, non sapevo che lo ox indicasse come leggere l'intero.
Grazie ancora. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:00.



















