Xor – operátor (Visual Basic)
Provádí logické vyloučení u dvou Boolean výrazů nebo bitové vyloučení u dvou číselných výrazů.
Syntax
result = expression1 Xor expression2
Součásti
result
Povinná hodnota. Libovolná Boolean nebo číselná proměnná. Pro logické porovnání result je logické vyloučení (výhradní logická disjunkce) dvou Boolean hodnot. Pro bitové operace je číselná hodnota, která představuje result bitové vyloučení (exkluzivní bitová disjunkce) dvou číselných bitových vzorů.
expression1
Povinná hodnota. Libovolný Boolean nebo číselný výraz.
expression2
Povinná hodnota. Libovolný Boolean nebo číselný výraz.
Poznámky
Pro logické porovnání je hodnota if a pouze v případě, že je právě jedna z hodnot a result True expression1 expression2 vyhodnocena jako True . To znamená, pokud a pouze v případě, že a expression1 expression2 vyhodnoceny jako opačné Boolean hodnoty. Následující tabulka ukazuje, jak result se určí.
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í operátor vždy vyhodnotí oba výrazy, což může zahrnovat Xor volání procedur. Neexistuje žádný protějšek s krátkým obvodem pro , protože výsledek vždy závisí Xor na obou operandech. Informace o krátkých logických operátorech najdete v tématu Operátor AndAlso a Operátor OrElse.
Pro bitové operace provádí operátor bitové porovnání identicky umístěných bitů ve dvou číselných výrazech a nastavuje odpovídající bit v podle Xor result následující tabulky.
Pokud bit v expression1 je |
A bit expression2 v je |
Bit v souboru 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 do závorek, aby se zajistilo přesné spuštění.
Například 5 Xor 3 je 6. Pokud chcete vidět, proč tomu tak je, převeďte hodnoty 5 a 3 na jejich binární reprezentace 101 a 011. Pak pomocí předchozí tabulky určete, že 101 Xnebo 011 je 110, což je binární reprezentace desetinného čísla 6.
Typy dat
Pokud se operandy skládají z jednoho výrazu a jednoho číselného výrazu, Visual Basic převede výraz na číselnou hodnotu (–1 pro a 0 pro ) a provede Boolean Boolean True False bitové operace.
Pro Boolean porovnání je datový typ výsledku Boolean . Pro bitové porovnání je výsledný datový typ číselný typ vhodný pro datové typy a expression1 expression2 . Podívejte se na tabulku "Relační a bitové porovnání" ve výsledcích datových typů operátorů.
Přetížení
Operátor Xor může být přetížen, což znamená, že třída nebo struktura může předefinovat své chování, pokud má operand typ této třídy nebo struktury. Pokud váš kód používá tento operátor u takové třídy nebo struktury, ujistěte se, že rozumíte jeho předdefinované chování. Další informace najdete v tématu Procedury operátora.
Příklad 1
Následující příklad používá operátor Xor k logickému vyloučení (výhradní logická disjunkce) u dvou výrazů. Výsledkem je Boolean hodnota, která představuje, jestli je právě jeden z výrazů 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 , a v uvedeném True False pořadí.
Příklad 2
Následující příklad používá operátor k logickému vyloučení (výhradní logická Xor disjunkce) na jednotlivých bitech dvou číselných výrazů. Bit ve vzorci výsledků 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.