我正试图找出C#和Javascript之间的一些差异。好的,在Javascript中使用此代码:
var j = 0x783a9b23;
var bt = ((16843134 ^ (16843134 - 1)) * j);
执行此操作后,“bt”将为6051320169.
现在在C#中执行此操作后:
int j = 0x783a9b23;
int bt = ((16843134 ^ (16843134 - 1)) * j);
“bt”将是1756352873。当然不一样。任何想法为什么Javascript没有看到C#如何看待它?
答案 0 :(得分:3)
您可以这样做,使其像在C#中一样工作
var j = 0x783a9b23;
var bt = ((16843134 ^ (16843134 - 1)) * j);
bt = bt % 2147483647
这是因为在c#中你的整数溢出了2,147,483,647的限制。