Operátor XOR (Visual Basic)
Provádí logické vyloučení dvou Boolean výrazy nebo bitového vyloučení dvou numerických výrazů.
result = expression1 Xor expression2
Části
result
Povinné.Všechny Boolean nebo číselné proměnné.Pro logické porovnání result je logické vyloučení (výhradní logický součet) dvou Boolean hodnoty.Pro bitové operace result je číselná hodnota, představuje bitový vyloučení dva vzorky číselné bit (výhradní bitový součet).expression1
Povinné.Všechny Boolean nebo číselný výraz.expression2
Povinné.Všechny Boolean nebo číselný výraz.
Poznámky
Pro logické porovnání result je True Pokud přesně jeden z expression1 a expression2 vyhodnocen jako True.To znamená pokud expression1 a expression2 vyhodnotit na opačné Boolean hodnoty.Následující tabulka ukazuje, jak result je určena.
If expression1 is |
And expression2 is |
Hodnota result je |
---|---|---|
True |
True |
False |
True |
False |
True |
False |
True |
True |
False |
False |
False |
[!POZNÁMKA]
V logické porovnání Xor operátor vyhodnocuje vždy oba výrazy, které mohou zahrnovat volání procedury.Neexistuje žádný protějškem short-circuiting Xor, protože výsledek vždy závisí na oba operandy.Pro nesmídojít ke zkratu logické operátory, viz Operátor AndAlso (Visual Basic) a Operátor OrElse (Visual Basic).
Pro bitové operace Xor operátor provádí bitového porovnání stejně umístěných bitů ve dvou číselných výrazech a nastaví odpovídající bit v result podle následující tabulky.
Pokud bit v expression1 je |
A bit v expression2 je |
Bit v result je |
---|---|---|
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
[!POZNÁMKA]
Jelikož logické a bitové operátory mají nižší prioritu než ostatní aritmetická a relační operátory, by měly být všechny bitové operace uvedeny v závorkách zajistit správné provádění.
Například 5 Xor 3 je 6.Proč je to tak, převod na binární vyjádření 101 a 011 5 a 3.Potom pomocí předchozí tabulky určit, že 101 Xor 011 110, což je binární podobu desetinné číslo 6.
Typy dat
Pokud operandy se skládá z jedné Boolean výraz a jeden číselný výraz jazyka Visual Basic převede Boolean výraz na číselnou hodnotu (–1 pro True a 0 pro False) a provede operaci bitového.
Pro Boolean je datový typ výsledek srovnání, Boolean.Bitové porovnání je výsledný datový typ číselného typu, který je vhodný pro datové typy expression1 a expression2.Naleznete v tabulce "Relační bitové porovnání a" Typy dat výsledků operátor (Visual Basic).
Přetěžování
Xor Operátor může být přetížení, což znamená, že třídy nebo struktury předefinovat své chování při operand je typu třídy nebo struktury.Pokud váš kód používá tento operátor na tyto třídy nebo struktury, ujistěte se, že pochopit jeho předefinovaná chování.Další informace naleznete v tématu Operátor postupy (Visual Basic).
Příklad
V následujícím příkladu Xor operátor (výhradní logický součet) logické vyloučení dvou výrazů.Výsledkem je Boolean hodnotu, která představuje, zda právě jeden z výrazů je True.
Dim a As Integer = 10
Dim b As Integer = 8
Dim c As Integer = 6
Dim firstCheck, secondCheck, thirdCheck As Boolean
firstCheck = a > b Xor b > c
secondCheck = b > a Xor b > c
thirdCheck = b > a Xor c > b
Předchozí příklad vytváří výsledky False, True, a False, resp..
V následujícím příkladu Xor operátor logické vyloučení (výhradní logický součet) jednotlivých bitů dvou numerických výrazů.Bity ve vzorku s výsledkem jsou nastaveny přesně jedna bity odpovídající operandy nastavena na 1.
Dim a As Integer = 10 ' 1010 in binary
Dim b As Integer = 8 ' 1000 in binary
Dim c As Integer = 6 ' 0110 in binary
Dim firstPattern, secondPattern, thirdPattern As Integer
firstPattern = (a Xor b) ' 2, 0010 in binary
secondPattern = (a Xor c) ' 12, 1100 in binary
thirdPattern = (b Xor c) ' 14, 1110 in binary
V předchozím příkladu dává výsledky 2, 12 a 14, resp..
Viz také
Referenční dokumentace
Logické/bitové operátory (Visual Basic)
Priority operátorů v jazyce Visual Basic
Operátory uvedené podle funkcí (Visual Basic)