valor hexadecimal convertir java integer hex

hexadecimal - Java Convertir entero a hex entero



string hex to int java (8)

Intento convertir un número de un entero en otro entero que, si está impreso en hexadecimal, se vería igual que el entero original.

Por ejemplo:

Convierta 20 a 32 (que es 0x20)

Convierte 54 a 84 (que es 0x54)


Podría intentar algo como esto (de la manera en que lo haría en papel):

public static int solve(int x){ int y=0; int i=0; while (x>0){ y+=(x%10)*Math.pow(16,i); x/=10; i++; } return y; } public static void main(String args[]){ System.out.println(solve(20)); System.out.println(solve(54)); }

Para los ejemplos que ha dado, esto calcularía: 0 * 16 ^ 0 + 2 * 16 ^ 1 = 32 y 4 * 16 ^ 0 + 5 * 16 ^ 1 = 84


public static int convert(int n) { return Integer.valueOf(String.valueOf(n), 16); } public static void main(String[] args) { System.out.println(convert(20)); // 32 System.out.println(convert(54)); // 84 }

Es decir, trate el número original como si estuviera en hexadecimal, y luego conviértalo a decimal.


String input = "20"; int output = Integer.parseInt(input, 16); // 32


La forma más fácil es usar Integer.toHexString(int)


Lo siguiente se optimiza si solo quiere imprimir la representación hexa de un entero positivo .

Debería ser increíblemente rápido, ya que utiliza solo la manipulación de bits, los valores utf-8 de los caracteres ASCII y la recursión para evitar la inversión de un StringBuilder al final.

public static void hexa(int num) { int m = 0; if( (m = num >>> 4) != 0 ) { hexa( m ); } System.out.print((char)((m=num & 0x0F)+(m<10 ? 48 : 55))); }


int orig = 20; int res = Integer.parseInt(""+orig, 16);


Una forma alternativa de convertir int a hex.

String s = String.format("%X", num);

Puede cambiar mayúscula X a x para minúscula.


Simplemente haz esto:

public static int specialNum(num){ return Integer.parseInt( Integer.toString(num) ,16) }

Debería convertir cualquier entero decimal especial a su contraparte hexadecimal.