byte(-128 ~ 127)の配列を16進数表記(00 ~ FF)に変換

/**
 * byte(-128 ~ 127)の配列を16進数表記(00 ~ FF)に変換する。
 *
 * @param bytes
 *            byte(-128 ~ 127)の配列
 * @return 16進数表記(00 ~ FF)
 */
public static String bytesToHexString(byte[] bytes) {
    String[] hexChar = new String[] { "0", "1", "2", "3",
                                      "4", "5", "6", "7",
                                      "8", "9", "A", "B",
                                      "C", "D", "E", "F", };
    StringBuilder sb = new StringBuilder("");
    for (byte b : bytes) {
        int bint = 0x0000FF & b; // 0拡張
        sb.append(hexChar[(bint) / 16]); // 上位4bit
        sb.append(hexChar[(bint) % 16]); // 下位4bit
    }
    return sb.toString();
}