来自Obj C的Java等价物

时间:2014-01-20 02:48:26

标签: java objective-c

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);

1 个答案:

答案 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,这是一种非基本类型。