Foro de elhacker.net

Programación => Java => Mensaje iniciado por: xopito en 10 Marzo 2011, 12:26 pm



Título: Problema al convertir de binario a hexadecimal (MAC)
Publicado por: xopito en 10 Marzo 2011, 12:26 pm
Hola,

bueno, explico mi programa.
Para introducir, estoy usando la librería JPcap para manejar los paquetes y demás cosas,

Primero meto en
byte b = tarjetas.mac_address[r];
que sería la tarjeta de red en cuestión y la MAC en código binario.

Para convertirlo, lo paso a hexadecimal así:

 macad[r]=(Integer.toHexString(b & 0xff));

Lo malo, es que, por ejemplo, la MAC de mi portátil empieza por "00:"
siendo una cadena de bits tal que "0000 0000", y al convertirlo a hexadecimal me queda "0:"
¿cuál sería la forma de hacer que me imprimiese los dos 0?

gracias,



Título: Re: Problema al convertir de binario a hexadecimal (MAC)
Publicado por: egyware en 10 Marzo 2011, 20:25 pm
Nunca hecho algo asi en Java, pero en C/C++
uso
Código
  1. printf("%p\n",0x0000);
  2.  
El cual me imprime en formato de puntero (igual es muy  util)
en java podrias hacer lo mismo pero con esto
Código
  1. System.out.printf("%p\n",0x0000);
  2.  

No se si exista formato "p" en java podrias intentar usar el "x" pero ese solo muestra un 0 en vez de 2.

Saludos!!


Título: Re: Problema al convertir de binario a hexadecimal (MAC)
Publicado por: xopito en 26 Marzo 2011, 11:43 am
gracias, de todas formas, ya encontré un método que al parecer va mejor

System.out.print(" dir origen: ");
        for (int i = 0; i < 6; i++) {
            System.out.format("%02X%s", macOrigen, (i < macOrigen.length - 1) ? "-" : "");
        }