Javascript按位运算符

时间:2011-11-10 12:13:41

标签: javascript

我正试图找出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#如何看待它?

1 个答案:

答案 0 :(得分:3)

您可以这样做,使其像在C#中一样工作

var j = 0x783a9b23;
var bt = ((16843134 ^ (16843134 - 1)) * j);
bt = bt % 2147483647

这是因为在c#中你的整数溢出了2,147,483,647的限制。