2011-07-01 24 views
5

Pensé que^hice eso. que esperaba:¿Qué hace^operador?

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

Lo que estoy recibiendo

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

el código real es

int value = 10^exp; 

reemplazando exp durante 0, 1, 2 y Lo que hace el operador^hacer ?

+1

^no significa "potencia" en C#. Parece ser un xor opn – Sai

+5

Está haciendo XOR – Rahul

+1

^es el XOR, no "Power Of": http://msdn.microsoft.com/en-us/library/zkacc7k1.aspx - no hay "Power Of "Operador, pero una función de biblioteca: Math.Pow: http://msdn.microsoft.com/en-us/library/system.math.pow.aspx –

Respuesta

11

Math.Pow (x, y) para obtener x elevado a la potencia de y. Estabas haciendo un XOR. C# operators

0

No hay operador para esto. Use Math.Pow.

Hay una lista completa de todos los C# operators con documentación vinculada para cada uno.

3

que quieres hacer:

Math.Pow(10, exp); 

En realidad, esto produce una double, aunque por lo que necesita para echar abajo si realmente quiere un int.

0
Math.Power(10,exp) works like charm... 
+0

^es un operador XOR lógico – Nitesh

1

Como han dicho otros, necesitas usar Math.pow(x, y) para hacer x^y en C#. El operador^es en realidad un operador XOR lógico en los bits de los dos números. Puede encontrar más información sobre el XOR lógico aquí: http://msdn.microsoft.com/en-us/library/zkacc7k1.aspx

0

El caso es que ^ es equivalente para XOR, es por eso que 10^0 = 10, porque

1010 XOR 1010 XOR 
0000 =  0010 = 
1010  1000 

Debe usar el método Math.Pow.

P.S. = 10^2 realmente devuelve 8 ...

Cuestiones relacionadas