我遇到了一件奇怪的事.我有一个字符串形式的二进制数字,特别是“01001100”.但我通过执行以下代码获得上述异常.
String s = "01001100"; byte b = Byte.parseByte(s);
但为什么会这样呢?而在一个字节中我们可以存储最大数量.最多127和分钟高达-128.
并且上述数字的十进制等值是76,完全在该范围内.
我得到的特殊例外是:
java.lang.NumberFormatException:值超出范围.值:01001100基数:10
有没有办法摆脱它.是的,我必须使用字节,因为我只是逐字节地提取存储在图像中的数据.
谢谢.
解决方法
密钥位于异常字符串的末尾:radix:10.您正在将十进制值1,001,100转换为一个字节,但它不适合.试试这个:
String s = "01001100"; byte b = Byte.parseByte(s,2);