我正在压缩一个字节数组,然后将每个字节转换为类似于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