2009-02-05 15 views
5

è possibile incrementare un valore esadecimale in Java? cioè "valore hex" = "valore hex" ++Incrementa un valore Hex (JAVA)

+1

Un valore è un valore, perché la rappresentazione (binario/ottale/hex/etc) è importante in questo caso? –

+1

Dovresti provare da solo prima di chiedere ... così facile da testare e imparare da solo. –

risposta

10

Cosa intendi con "valore esadecimale"? In quale tipo di dati è archiviato il tuo valore?

noti che int/short/car/... Non mi importa quanto il tuo valore è rappresentato inizialmente:

int i1 = 0x10; 
int i2 = 16; 

i1 e i2 avranno la esattamente lo stesso contenuto. Anche Java (e la maggior parte delle altre lingue) non si preoccupano della notazione delle costanti/valori.

3

Sì. Tutti gli int sono comunque binari, quindi non importa come li dichiari.

int hex = 0xff; 
hex++; // hex is now 0x100, or 256 
int hex2 = 255; 
hex2++; // hex2 is now 256, or 0x100 
11

Dipende da come viene memorizzato il valore esadecimale. Se hai il valore esadecimale in una stringa, convertilo in un numero intero, incrementalo e convertilo nuovamente.

int value = Integer.parseInt(hex, 16); 
value++; 
String incHex = Integer.toHexString(value); 
9

Risposta breve: sì. E 'la risposta

myHexValue++; 

più lungo: E' probabile che il 'valore esadecimale' viene memorizzato come un intero. L'attività di convertirlo in esadecimale (in contrapposizione al solito decimale) stringa viene fatto con

Integer.toHexString(myHexValue) 

e da una stringa esadecimale con

Integer.parseInt(someHexString, 16); 

M.

+0

oppure String.format ("% x", myHexValue); –

0

La base della il numero è puramente un problema di interfaccia utente. Internamente un intero è memorizzato come binario. Solo quando lo converti in rappresentazione umana scegli una base numerica. Quindi la tua domanda si riduce davvero a "come incrementare un intero?".