c#和vb,net中的奇怪行为或^运算符

时间:2013-08-03 08:08:50

标签: c# .net vb.net

在C#中Console.WriteLine(16 ^ 2);给了我18

但是在VB.Net中Console.WriteLine(16 ^ 2)给了我256

为什么会这样?

2 个答案:

答案 0 :(得分:6)

在C#中,^是一个按位XOR运算符。 C# ^ Operator

所以如果你用16位代表

10000

2是

00010

XOR意味着如果只有一个操作数在相应位置具有1,则得到1:

 10000
+00010
=10010

这意味着18。

在VB中,它是电源操作员。 VB ^ Operator

如果你以2的力量加注16,就好像你有:

16 * 16 = 256

答案 1 :(得分:2)

C#中有Math.Pow(x, y)个函数。

但是在VB.NET中,^直接用于表示功能,就像我们在简单数学中那样。