Cadena "binaria" y mostrar valor en hexadecimal

Hola a todos,

Tengo un problema que necesito resolver. Tengo una cadena de 256 caracteres representado en forma binaria por ejemplo String c = "00011001...." y necesito empacarla a una longitud de 64. Lo que he pensado es recorrer la cadena y sacar los valores de 4 en 4. En lo que les pido ayuda es que una vez que voy sacando estas subcadenas pueda mostrar su valor en hexadecimal. Si la primera cadena es 1111 pueda mostrar su valor en hexadecimal es decir F para este ejemplo o C para 1100. Alguna sugerencia de como hacerlo.

Gracias adelantadas por la ayuda.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Integer.toString( int i, int

Integer.toString( int i, int radix ) y
Integer.parseInt( String s, int radix )

son tus amigos:

Debe de ser algo así:

StrignBuilder resultado = new StringBuilder();
for ( int i = 0 ; i < input.length() ; i +=4 ) {
    int    numero  = Integer.parseInt( input.substring( i, i+4) , 2 );
    String reprHex = Integer.toString( numero, 16 );
    resultado.append( reprHex );
}

O si te quieres ver bien oneliner

for ( int i = 0 ; i < input.lenght(); i+=4 ) resultado.append( Integer.toString( Integer.parseInt( input.substrign( i , i+4 ) ,  2 ) , 16)  );

Bueno esa es la idea. No lo compile así que hay que ajustar por ahí un poco.

Ash.. no lo pude evitar...

Ash.. no lo pude evitar...

Ja!las cosas que encuentra

Ja!

las cosas que encuentra uno en Google. Lo anterior también se pudo escribir así:

        for ( String part : input.split("(?<=\\G....)") ) {
            builder.append( Integer.toString( Integer.parseInt( part , 2 ), 16 ));
        }
        System.out.println( builder );

See: http://stackoverflow.com/questions/2297347/splitting-a-string-at-every-n...

#buenoYa

Imagen de footballer

Gracias

¡¡¡Oscar, funciona a la perfección!!! Gracias por el aporte.

Saludos.

Imagen de footballer

Buen ejemplo

Esta también es una buena rutina, más simplificada, el detalle es que lo deja a 128 posiciones pero es un buen ejemplo.