Math.POW(x,y)从x ^ y得到不同的值

时间:2012-10-21 14:10:00

标签: c# javascript

在JavaScript中

215 ^ 150 = 65 

但是当我在C#中尝试Math.POW(215, 150)时,我正在获得无限

为什么不是65?我应该如何在C#中获得65?

2 个答案:

答案 0 :(得分:7)

您忘记了^运算符不是幂函数运算符,而是一个按位异或运算符。

11010111 (215)
10010110 (150)  XOR
--------
01000001 (65)

215到150的力量是非常大的,因此无限。

如果您想要65,请使用215 ^ 150。但是,如果你想要215到150的幂,那么你将需要使用Math.POW(x,y)可以支持的更大数字变量类型。我甚至不确定BigInteger库是否可以处理那么大的操作,但如果你正在追求它,那么值得一试。

答案 1 :(得分:5)

使用相同的语法。 215 ^ 150在c#中确实是65。

^表示XOR(在Javascript和c#中)不是Math.Pow(x,y)

http://en.wikipedia.org/wiki/Exclusive_or