vb.net中的异或运算符Xor
xor 在对外运算时,如果要实现清除某位数据的效果时,要首先检查确保此位数据是1,如果是0的话,反而起到反效果,变成从0到有
如:
if (.fDensityMeasureType And EMDensityMeasureType.HIMS)>0) then
.fDensityMeasureType = .fDensityMeasureType xor EMDensityMeasureType.HIMS
end if
如果要省略检查步骤,则可以使用如下方式,同时,这种方式,就算要移除的是复合值,也可以正常移除
.fDensityMeasureType = .fDensityMeasureType And (Not EMDensityMeasureType.HIMS)
对两个 Boolean 表达式执行逻辑异或运算,或对两个数值表达式执行按位异或运算。
Boolean 比较的结果是两个表达式的逻辑异或。对于按位运算,结果是对两个数值表达式执行按位异或产生的数值。
对于 Boolean 比较,如果有一个且仅有一个表达式计算为 True,则 result 为
True。否则,result 为 False。如果任一表达式被声明为 Nothing,则该表达式被计算为
False。
如果 expression1 为 | 并且 expression2 为 | 则 result 为 |
---|---|---|
True | True | False |
True | False | True |
False | True | True |
False | False | False |
对于数值表达式,Xor 运算符作为按位运算符执行。两个表达式使用“异或”逻辑进行按位比较形成的结果如下表所示:
如果 expression1 中的位为 | 并且 expression2 中的位为 | 则 result 为 |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
注意 由于逻辑/位运算符的优先级低于其他算术和关系运算符的优先级,所以应该将任何按位运算括在括号中以确保准确执行。