我在我的代碼中有一個小錯誤,我不能爲我的生活弄清楚。Java Byte.parseByte()error
我有一個二進制數據表示(從十六進制轉換後)的字符串數組,例如: 一個索引是1011,另一個是11100.我遍歷數組並填充每個索引的0,以便每個索引是八個字節。當我嘗試這些表象轉化爲實際字節我得到一個錯誤,當我嘗試解析「11111111」我得到的錯誤是:
這裏是一個片段:
String source = a.get("image block");
int val;
byte imageData[] = new byte[source.length()/2];
try {
f.createNewFile();
FileOutputStream output = new FileOutputStream(f);
for (int i=0; i<source.length(); i+=2) {
val = Integer.parseInt(source.substring(i, i+2), 16);
String temp = Integer.toBinaryString(val);
while (temp.length() != 8) {
temp = "0" + temp;
}
imageData[i/2] = Byte.parseByte(temp, 2);
}
'byte'只允許在-128到127範圍內的數字。我會使用'int'來代替,它保存的數字範圍爲-21億到21億。 – fireshadow52