【发布时间】:2018-02-16 21:07:53
【问题描述】:
我正在阅读一种文件格式,它指定某些类型是无符号整数和短裤。当我读取这些值时,我将它们作为字节数组获取。我见过的将它们变成短裤/整数/多头的最佳途径是这样的:
ByteBuffer wrapped = ByteBuffer.wrap(byteArray);
int x = wrapped.getInt();
对于无符号整数来说,这看起来很容易溢出。有没有更好的方法来处理这种情况?
更新:我应该提到我正在使用 Groovy,所以我绝对不在乎是否必须使用 BigInteger 或类似的东西。我只希望在保持价值不变的情况下获得最大的安全性。
【问题讨论】:
-
取决于你想用它们做什么。如果要将它们用作实际数值,则必须读取它们,将它们提升(即分配)到下一个更大的大小,然后屏蔽可能扩展的符号位。