转换字节会导致NumberFormatException

时间:2015-08-18 03:35:35

标签: java

我正在压缩一个字节数组,然后将每个字节转换为类似于000100111的字节。 这样做时,我得到以下异常:

java.lang.NumberFormatException: For input string: "11111111111111111111111111011010"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:495)
at java.lang.Integer.valueOf(Integer.java:582)
at logic.ColorManager.getBinary(ColorManager.java:101)
at logic.ColorManager.convertByteToColor(ColorManager.java:47)
at logic.ColorManager.writeColors(ColorManager.java:86)
at logic.Main.main(Main.java:13)

导致异常的字节是:-32。 这是我转换字节的方法:

public String getBinary(byte byt) {
    try {
        int tmpNm = Integer.valueOf(Integer.toBinaryString((int) byt));
        String tmpNmS = String.valueOf(tmpNm);
        while (tmpNmS.length() < 8) {
            tmpNmS = "0" + tmpNmS;
        }
        return tmpNmS;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return "";
}

如何将负字节转换为二进制等效字节?例如。 01010010

0 个答案:

没有答案