Что делает оператор ^? - PullRequest
5 голосов
/ 01 июля 2011

Я думал, что ^ сделал это.Я ожидал:

10^0=1
10^1=10
10^2=100

Что я получаю

10^0=10
10^1=11
10^2=8

Фактический код

int value = 10 ^ exp;

с заменой exp на 0, 1 и 2оператор ^ делает?

Ответы [ 9 ]

11 голосов
/ 01 июля 2011

Math.Pow (x, y), чтобы поднять x до степени y. Вы делали XOR. операторы C #

3 голосов
/ 01 июля 2011

Вы хотите сделать:

Math.Pow(10, exp);

Это на самом деле производит double, хотя вам нужно будет бросить его, если вы действительно хотите int.

2 голосов
/ 01 июля 2011

В c # ^ - логический оператор XOR .

1 голос
/ 01 июля 2011

Как уже говорили другие, вам нужно использовать Math.pow(x, y), чтобы сделать x^y в C #.Оператор ^ на самом деле является логическим оператором XOR для битов двух чисел.Более подробную информацию о логическом XOR можно найти здесь: http://msdn.microsoft.com/en-us/library/zkacc7k1.aspx

0 голосов
/ 01 июля 2011

Дело в том, что ^ эквивалентно XOR, поэтому 10 ^ 0 = 10, потому что

1010 XOR    1010 XOR
0000 =      0010 =
1010        1000

Вам необходимо использовать Math.Pow метод.

PS = 10 ^ 2 фактически возвращает 8 ...

0 голосов
/ 01 июля 2011

^ является оператором XOR.

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

Если вы хотите поднять число до степени, используйте

Math.Pow(num, exp);
0 голосов
/ 01 июля 2011

В C # оператор ^ является логическим оператором XOR.

http://msdn.microsoft.com/en-us/library/6a71f45d.aspx

0 голосов
/ 01 июля 2011
Math.Power(10,exp) works like charm...
0 голосов
/ 01 июля 2011

Для этого нет оператора.Используйте Math.Pow.

Существует полный список всех операторов C # со связанной документацией на каждом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...