¿Cuál es el operador por debajo de ^? ¿Cuándo usarlo?Cuándo utilizar el operador "^"
Mi lenguaje de programación es C#.
¿Cuál es el operador por debajo de ^? ¿Cuándo usarlo?Cuándo utilizar el operador "^"
Mi lenguaje de programación es C#.
^
es una lógico XOR Operador si los operandos son Bools, de lo contrario es un XOR Operador
binarios^operadores están predefinidos para los tipos integrales y bool. Para los tipos integrales,^calcula el OR exclusivo en bits de sus operandos. Para los operandos bool,^calcula el operador lógico exclusivo o sus operandos; es decir, el resultado es verdadero si y solo si exactamente uno de sus operandos es verdadero.
http://msdn.microsoft.com/en-us/library/zkacc7k1.aspx
"Operador lógico XOR". - Eso solo es cierto si los operandos son bools, de lo contrario es un operador bit a bit. Jugar rápido y suelto con los términos 'bitwise' y 'logical' hace la vida muy difícil cuando explicas la diferencia entre & y && en 'C' ... –
@Will Dean: Gracias por aclarar. – sshow
Es el operador XOR. Se usa en operaciones bit a bit, donde el resultado es verdadero si el lado izquierdo es verdadero o el lado derecho es verdadero, pero falso si ambos son verdaderos o ambos son falsos. Así 0xf8^0x3f
sería:
1111 1000
0011 1111
---------
1100 0111
Cuál es C7 en hexadecimal.
En general, si no está haciendo aritmética en modo bit, no tendrá que preocuparse por ello.
Olvidó agregar que también es falso si BOTH es falso. –
pienso en él como un operador binario igual ||, & &, etc ...
Si estuviera escribiendo la lógica y terminó con:
if((condition1 && !condition2) || (condition2 && !condition1))
{
}
que podría volver a escribir como :
if(condition1^condition2)
{
}
dicho esto, me gustaría tener en una base de caso por base y sopesar el beneficio de la brevedad frente a la ofuscación potencial debido a la relativa oscuridad.
Su operador OR exclusivo (XOR) como se menciona por otros. Aquí está la tabla de verdad para XOR
P Q P^Q
T T F
T F T
F T T
F F F
Tenga en cuenta que P^Q es igual a P! = Q. A veces P! = Q se usa en el código en lugar del operador XOR.
Ejemplo:
101^
110
-----
011 //Flip the first 2, keep the 3rd
Ejemplo:
int myMoney = 10;
int yourMoney = 50;
Swap(myMoney, yourMoney)
public void Swap(ref int a, ref int b) //No 'temp' variable necessary
{
a ^= b;
b ^= a;
a ^= b;
}
Se utiliza en aritmética binaria. ** Esta es realmente útil **
Lanza una bool (sin embargo, yo prefiero usar bool x = true; x = x;
Ejemplo:
public bool flip(ref bool b)
{
b ^= true;
}
Google , o MSDN en este caso, es su amigo: http://msdn.microsoft.com/en-us/library/zkacc7k1%28VS.71%29.aspx. Para responder a su segunda pregunta, utiliza el operador cuando lo necesita al igual que, por ejemplo, el operador '+' – stakx
Google no es una respuesta, MSDN, sin embargo, lo es. http://meta.stackexchange.com/questions/8724/how-to-deal-with-google-questions – Bobby
Si no sabe lo que está buscando, Google puede ser difícil, especialmente porque Google ni siquiera reconoce el carácter ^. Además, también quiere saber "cuándo usarlo" algo que ningún lugar podría responder mejor que StackOverflow –