问题描述
- 关于java中byte 超出表示范围了
-
String s = Integer.toHexString(number);
byte b = Byte.parseByte(s,16);但是java中byte的范围不是-128~127吗,
请问怎么表示比如128
解决方案
解决方案二:
你可以试下,如果number大于127的话,就会报Value out of range(数值超出范围)的错误。
如果估计数据可能超出-128~127这个范围的话,你就需要考虑用int b 而不是byte b了。
解决方案三:
java的byte类型的范围就是【-128,127】,128就不是byte类型了,为什么非要用byte类型呢?
该区间外的数据调用这个方法,就不合常理所以异常,异常信息为java.lang.NumberFormatException: Value out of range。
充分说明java对byte类型的数据有严格的校验的,所以非byte范围内的数据直接用Integer或者int表示就可以了啊。因为byte的本质也是int的。
时间: 2024-09-10 16:02:18