Xor – operátor (Visual Basic)
Provede logické vyloučení dvou Boolean
výrazů nebo bitové vyloučení dvou číselných výrazů.
Syntaxe
result = expression1 Xor expression2
Součástky
result
Povinný: Libovolná Boolean
nebo číselná proměnná. Pro logické porovnání result
je logické vyloučení (výhradní logické rozdělení) dvou Boolean
hodnot. U bitových operací je číselná hodnota, result
která představuje bitové vyloučení (exkluzivní bitové rozdělení) dvou číselných bitových vzorů.
expression1
Povinný: Libovolný Boolean
nebo číselný výraz
expression2
Povinný: Libovolný Boolean
nebo číselný výraz
Poznámky
V případě logického porovnání, je-li a pouze v případě, result
že je právě jeden z expression1
nich a expression2
vyhodnocen jako True
.True
To znamená, že pokud a expression2
pouze vyhodnocuje expression1
opačné Boolean
hodnoty. Následující tabulka ukazuje, jak result
je určeno.
Pokud expression1 je |
A expression2 je |
Hodnota result je |
---|---|---|
True |
True |
False |
True |
False |
True |
False |
True |
True |
False |
False |
False |
Poznámka:
V logickém porovnání Xor
operátor vždy vyhodnocuje oba výrazy, což může zahrnovat volání procedur. Neexistuje žádný zkratový protějšek Xor
, protože výsledek vždy závisí na obou operandech. V případě logických operátorů zkratek naleznete v tématu Operátor AndAlso a OrElse – operátor.
U bitových operací Xor
operátor provádí bitové porovnání identicky umístěných bitů ve dvou číselných výrazech a nastaví odpovídající bit podle result
následující tabulky.
Pokud je bit v expression1 |
A bit in expression2 je |
Bit in result je |
---|---|---|
1 | 1 | 0 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
Poznámka:
Vzhledem k tomu, že logické a bitové operátory mají nižší prioritu než jiné aritmetické a relační operátory, měly by být všechny bitové operace uzavřeny v závorkách, aby se zajistilo přesné provedení.
Například 5 Xor
3 je 6. Chcete-li zjistit, proč je to tak, převeďte 5 a 3 na jejich binární reprezentace, 101 a 011. Potom použijte předchozí tabulku k určení, že 101 Xor 011 je 110, což je binární reprezentace desítkového čísla 6.
Typy dat
Pokud se operandy skládají z jednoho Boolean
výrazu a jednoho číselného výrazu, Jazyk Visual Basic převede Boolean
výraz na číselnou hodnotu (–1 pro a 0 pro True
False
) a provede bitové operace.
Boolean
Pro porovnání je datový typ výsledku Boolean
. Pro bitové porovnání je datový typ výsledku číselný typ vhodný pro datové typy expression1
a expression2
. Viz tabulka Relační a bitové porovnání v datových typech výsledků operátoru.
Přetížení
Operátor Xor
může být přetížen, což znamená, že třída nebo struktura mohou předefinovat jeho chování, pokud operand má typ této třídy nebo struktury. Pokud váš kód používá tento operátor pro takovou třídu nebo strukturu, ujistěte se, že rozumíte jeho předdefinované chování. Další informace naleznete v tématu Procedury operátoru.
Příklad 1
Následující příklad používá Xor
operátor k provedení logického vyloučení (výhradní logické disjunkce) u dvou výrazů. Výsledkem je Boolean
hodnota, která představuje, zda přesně 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 vytvoří výsledky False
, True
a False
, v uvedeném pořadí.
Příklad 2
Následující příklad používá Xor
operátor k provedení logického vyloučení (výhradní logické disjunkce) na jednotlivých bitech dvou číselných výrazů. Bit ve výsledném vzoru je nastaven, pokud je přesně jeden z odpovídajících bitů v operandech nastaven na hodnotu 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
Předchozí příklad vytvoří výsledky 2, 12 a 14.