Поскольку Integer.toHexString (byte / integer) не работает, когда вы пытаетесь преобразовать подписанные байты, такие как декодированные символы UTF-16, которые вы должны использовать:
Integer.toString(byte/integer, 16);
или
String.format("%02X", byte/integer);
reverse вы можете использовать
Integer.parseInt(hexString, 16);