Sdílet prostřednictvím


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 TrueFalse) 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, Truea 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.

Viz také