我正在努力将一个C ++项目移植到Java上,而且我已经陷入了一个看似非常简单的按位操作,但我在C ++中获得的结果与Java相比有所不同。请考虑以下事项。
long xor = 2654435769L;
xor ^= xor << 0x0B;
在C ++中,(正确)值为637186489,但在Java中为5433770815929。
我在这里缺少什么?
答案 0 :(得分:0)
java中的long
数据类型是64位。请尝试使用int
。基本上,无论您在C ++中使用long
还是int
,只能在Java中使用int
。如果你在C ++中有long long
,那么你在Java中使用long
。
编辑:你的标题有点模糊。您应该重新编写它,以便人们知道您正在尝试将C ++代码转换为Java。