java中这个objc行的等价物是什么?
uint64_t lInt = 0xFFFFFFFF << 10;
lInt = ((uint64_t)mBytes[0] << 24) + ((uint64_t)mBytes[1] << 16);
我是这样写的,但我认为这是错误的。
long lInt = 0xFFFFFFFFL << 10;
lInt = ((mBytes[0] << 24) + (mBytes[1] << 16);
答案 0 :(得分:0)
如评论所示:
“只需将uint64_t改为long,其他一切都是相同的。长的容量可能不够(因为Java中没有unsigned),但这是你能得到的最好的。”
长尺寸
直到Java 7(当前):长数据类型是64位二进制补码整数。有符号长整数的最小值为-2 ^ 63,最大值为2 ^ 63-1。
Java 8:在Java SE 8及更高版本中,您可以使用长数据类型来表示无符号的64位长,其最小值为0,最大值为2 ^ 64-1 < / p>
如果需要表示更大的整数,请使用BigInteger,这是一种非基本类型。