有人可以向我解释为什么.net 计算这些与 Java 不同
方程
(-1646490243 << 4) + 3333 ^ -1646490243 + -957401312 ^ (-1646490243 >> 5) + 4
Java将其计算为
1173210151
.Net 计算为
-574040108
我的问题是我需要 .Net 来计算与 Java 相同的值,因为我正在跨解密函数进行移植,如果它的计算方式不同,那么解密就不会正确。
任何帮助,将不胜感激。
- 更新 -
谢谢大家,Xor 是我应该使用的。另外,当整数太大时,需要解决 Java 不抛出异常的问题。
Xor 的结果为 -3121757145
(-1646490243 << 4) + 3333 Xor -1646490243 + -957401312 Xor (-1646490243 >> 5) + 4
将此与我发现的此链接的答案结合起来 - Java sum 2negative numbers。给出与 Java 相同的结果
-3121757145 + 2 ^ 32 = 1173210151