2009-02-05 27 views
5

¿Puede incrementar un valor hexadecimal en Java? es decir, "valor hexadecimal" = "valor hexadecimal" ++Incremente un valor hexadecimal (JAVA)

+1

Un valor es un valor, ¿por qué importa la representación (binary/octal/hex/etc) en este caso? –

+1

Deberías probarlo tú mismo antes de preguntar ... tan fácil de probar y aprender por ti mismo. –

Respuesta

10

¿Qué quiere decir con "valor hexadecimal"? ¿En qué tipo de datos está almacenado tu valor?

Tenga en cuenta que int/corto/char/... No me importa lo que su valor está representado inicialmente:

int i1 = 0x10; 
int i2 = 16; 

i1 y i2 tendrá el mismo contenido exacto . Java (y la mayoría de los otros idiomas también) no se preocupan por la notación de sus constantes/valores.

3

Sí. Todas las entradas son binarias de todos modos, por lo que no importa cómo las declaras.

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

Depende de cómo se almacena el valor hexadecimal. Si tiene el valor hexadecimal en una cadena, conviértalo en un Entero, increméntelo y conviértalo nuevamente.

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

Respuesta corta: sí. Es la respuesta

myHexValue++; 

más largo: Es probable que su 'valor hexadecimal' se almacena como un entero. El negocio de convertirlo en un hexadecimal (en contraposición a la decimal usual) cadena se realiza con

Integer.toHexString(myHexValue) 

y desde una cadena hexadecimal con

Integer.parseInt(someHexString, 16); 

M.

+0

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

0

La base de la número es puramente un problema de UI. Internamente, un entero se almacena como binario. Solo cuando lo conviertes en representación humana eliges una base numérica. ¿Entonces tu pregunta realmente se reduce a "cómo incrementar un número entero"?

Cuestiones relacionadas