Originariamente inviato da Sampy84
alla fine ho risolto andando a creare e richiamare questo metodo, che ne pensi??
Che ha poco senso ..... lo avrebbe forse solo se ti fosse stato chiesto (per qualunque motivo .... "didattico" o altro) di fare espressamente il passaggio valore -> stringa binaria -> stringa esadecimale.

Ma in ogni caso hai solo fatto un metodo lungo e fumoso.

codice:
public static String byteToHexString(byte b) {
    String s = Integer.toHexString(b & 0xFF).toUpperCase();
    return s.length() == 1 ? "0"+s : s;
}
E se si voleva farlo senza usare metodi del framework ma solo con dei calcoli, si poteva anche fare:

codice:
private static final char[] hexDigits = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F' };

public static String byteToHexString(byte b) {
    return "" + hexDigits[b >> 4 & 0xF] + hexDigits[b & 0xF];
}