Problema al convertir de binario a hexadecimal (MAC)

Iniciado por xopito, 10 Marzo 2011, 12:26 PM

0 Miembros y 1 Visitante están viendo este tema.

xopito

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,


egyware

Nunca hecho algo asi en Java, pero en C/C++
uso

printf("%p\n",0x0000);

El cual me imprime en formato de puntero (igual es muy  util)
en java podrias hacer lo mismo pero con esto
Código (java) [Seleccionar]

System.out.printf("%p\n",0x0000);


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

Saludos!!

xopito

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) ? "-" : "");
        }