【发布时间】:2012-11-12 03:32:37
【问题描述】:
有人可以向我解释为什么 .net 计算这些与 Java 不同
等式
(-1646490243 << 4) + 3333 ^ -1646490243 + -957401312 ^ (-1646490243 >> 5) + 4
Java 将其计算为
1173210151
.Net 计算为
-574040108
我的问题是,我需要 .Net 来计算与 Java 相同的值,因为我正在移植一个解密函数,如果它的计算方式不同,那么解密就不会正确。
任何帮助将不胜感激。
--更新--
谢谢大家,Xor 是我应该使用的。另外,当 Integer 数字太大时,需要解决 Java 不抛出异常的问题。
Xor 的结果为 -3121757145
(-1646490243 << 4) + 3333 Xor -1646490243 + -957401312 Xor (-1646490243 >> 5) + 4
将此与我找到的此链接中的答案结合起来 - Java sum 2 negative numbers。给出与 Java 相同的结果
-3121757145 + 2 ^ 32 = 1173210151
【问题讨论】:
-
在 Java 中,
^是XOR运算符。我不熟悉 VB,但一些 Google 搜索暗示Xor是 xor 运算符,^是 VB 中的求幂。这可能是问题所在?
标签: java .net vb.net math encryption