操作符 Xor (位异或)
 
返回两个数值的bitwise-xor(exclusive disjunction)

语法

Declare Operator Xor ( ByRef lhs As T1 , ByRef rhs As T2 ) As Ret

用法

result = lhs Xor rhs

参数

lhs
左边的表达式。
T1
任何数字类型。
rhs
右侧表达。
T2
任何数字类型。
Ret
数字类型(因T1 T2 而异)。

返回值



说明

该运算符返回其操作数的逐位排除,这是一个逻辑运算,它导致根据操作数的位设置位的值。

下面的真值表展示了布尔排除操作的所有组合:

Lhs位Rhs位结果
000
101
011
110


不执行短路 - 两个表达式总是被评估。

返回类型取决于传递的值的类型。ByteUByte和浮点类型值首先转换为Integer.如果左右侧类型的签名不同,则返回类型与左侧类型(T1 )相同,否则返回两种类型中的较大者。

对于用户定义的类型,此运算符可能会重载。

例子

'在两个数值上使用XOR运算符
Dim As UByte numeric_value1, numeric_value2
numeric_value1 = 15 '00001111
numeric_value2 = 30 '00011110

'结果= 17 = 00010001
Print numeric_value1 Xor numeric_value2
Sleep


'对两个条件表达式使用XOR运算符
Dim As UByte numeric_value1, numeric_value2
numeric_value1 = 10
numeric_value2 = 15

If numeric_value1 = 10 Xor numeric_value2 = 20 Then Print "Numeric_Value1等于10或Numeric_Value2等于20"
Sleep

'这将输出“Numeric_Value1等于10或Numeric_Value2等于20”
'因为只有IF语句的第一个条件是真的


方言差异

  • -lang qb 方言中,此运算符无法重载。

与QB差别

  • 没有

参考