Co to jest operator poniżej ^? Kiedy go używać?Kiedy używać operatora "^"
Mój język programowania to C#.
Co to jest operator poniżej ^? Kiedy go używać?Kiedy używać operatora "^"
Mój język programowania to C#.
^
jest logiczna XOR Operator jeśli argumenty są bools, w przeciwnym razie jest to bitowe XOR Operator
binarne^operatorzy są predefiniowane dla integralnych typach i bool. Dla typów całkowitych^oblicza bitowe exclusive-OR swoich operandów. Dla operandów logicznych,^oblicza logiczne wyłączne - lub jego operandy; to znaczy, wynik jest prawdziwy wtedy i tylko wtedy, gdy dokładnie jeden z jego argumentów jest prawdziwy.
http://msdn.microsoft.com/en-us/library/zkacc7k1.aspx
"Logiczny operator XOR." - To jest prawdziwe tylko wtedy, gdy operandy są operatory, w przeciwnym razie jest to bitowy operator. Granie szybko i luźno z terminami "bitowy" i "logiczny" sprawia, że życie jest bardzo trudne, kiedy przychodzi wyjaśnić różnicę między & i && w "C" ... –
@Will Dean: Dzięki za wyjaśnienie. – sshow
To operator XOR. Jest używany w operacjach bitowych, gdzie wynik jest prawdziwy, jeśli lewa strona jest prawdziwa lub prawa strona jest prawdziwa, ale fałsz, jeśli zarówno są prawdziwe, jak i zarówno są fałszywe. Więc 0xf8^0x3f
byłoby:
1111 1000
0011 1111
---------
1100 0111
Który C7 w systemie szesnastkowym.
Ogólnie rzecz biorąc, jeśli nie robisz arytmetyki bitowej, nie musisz się o to martwić.
Nie zapomniałeś dodać, że jest to również fałsz, jeśli BOTH jest fałszywe. –
myślę o nim jako binarna operatora podobnie jak || & &, etc ...
Gdybym pisanie logiki i skończyło się z:
if((condition1 && !condition2) || (condition2 && !condition1))
{
}
mógłbym przepisać go jako :
if(condition1^condition2)
{
}
powiedział, zabrałbym go na każdym indywidualnym bazowej i zważyć korzyści zwięzłości vs. potencjalnego zaciemniania powodu względnej ciemności.
Jego wyjątkowy operator OR (XOR), o którym wspominali inni. Oto tabela prawdy dla XOR
P Q P^Q
T T F
T F T
F T T
F F F
Należy pamiętać, że P^Q jest równe P! = Q. Czasami P! = Q jest używane w kodzie zamiast operatora XOR.
przykład:
101^
110
-----
011 //Flip the first 2, keep the 3rd
przykład:
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;
}
Jest używany w arytmetyce binarnej. ** To jest rzeczywiście UŻYTECZNE **
Klapki bool (choć wolałbym użyć bool x = true; x = x;
Przykład:
public bool flip(ref bool b)
{
b ^= true;
}
Google lub MSDN w tym przypadku jest Twoim przyjacielem: http://msdn.microsoft.com/en-us/library/zkacc7k1%28VS.71%29.aspx. Aby odpowiedzieć na drugie pytanie, korzystasz z operatora, gdy potrzebujesz to, tak jak np. operator '+'. – stakx
Google nie jest odpowiedzią, MSDN to jednak http://meta.stackexchange.com/questions/8724/how-to-deal-with-google-questions – Bobby
Jeśli nie wie, czego szuka, Google może być trudne, zwłaszcza, że Google nawet nie rozpoznaje znaku ^. Poza tym on również chce wiedzieć "kiedy go użyć", czego nie ma lepszego miejsca niż StackOverflow –