【发布时间】:2016-09-07 15:09:31
【问题描述】:
我想要一个 little-endian DWORD 字节数组的无符号值。
这是我写的:
private long getUnsignedInt(byte[] data) {
long result = 0;
for (int i = 0; i < data.length; i++) {
result += (data[i] & 0xFF) << 8 * (data.length - 1 - i);
}
return result;
}
对吗?
【问题讨论】:
-
它是否为您提供了您期望的值?
-
我测试的是肯定的,但我不明白这是否是“二进制补码”安全的。
-
不错的投票者,也许我不应该发布代码而只发布问题?
-
@Kayaman 我的意思是“二进制补码”(我错了,我编辑了我的评论)表示负数
-
我知道二进制补码是什么,但我不知道“二进制补码”安全应该是什么意思。尤其是当你在谈论无符号数字时。