VB中XOR是什么意思. 20

Dim hiliteMenu As Long hiliteMenu = HiliteMenuItem(Me.hwnd, hMenu, 0, MF_BYPOSITION Xor MF_HILITE) MsgBox hiliteMenu 我将XOR换成AND的时候不能加亮显示,为什么. AND不是和的意思么?和的意思的话应该两个标志符都可以使用,但是为什么不可以用 XOR... 展开
这个条件是什么三楼的说MF_BYPOSITION Xor MF_HILITE中的xor改成and时.,只能两种条件都满足的情况下才行
发布于2008-02-19 13:50 最佳答案
a Xor b Xor a = b:
7 Xor 11
(7)10=(0111)2
(11)10=(1011)2
0 1 1 1
1 0 1 1
-Xor--------
1 1 0 0
(1100)2=12
所以7 Xor 11=12
又如
13 Xor 52

0 0 1 1 0 1
1 1 0 1 0 0
-Xor------------
1 1 1 0 0 1
所以13 Xor 52 = 57(111001的10进制)

替三楼回答False Xor False =False
True Xor False =True
False Xor True =True
True Xor True =False
如果是两个数互相Xor的话,就获得2个值了
(Xor运算有一个特点,相同则为零,然后对每位进行运算:
MF_BYPOSITION Xor MF_HILITE
用Xor是因为VB传参数的机制就是这样的
MF_BYPOSITION是使用菜单项的位置(从序号0开始)来标示菜单项
MF_HILITE好像是加亮显示吧

MF_BYPOSITION = &H400&
MF_BYCOMMAND = &H0&
MF_HILITE = &H80&

这样VB就可以只传输一个参数,不同则为1
如,先化成2进制

其他回答

xor说明: 如果表达式中有一个而且只有一个值为True,则结果为True。以下数字0代表假(False),1代表真(True)。最后一位数代表运行结果 0 xor 0= 0 0 xor 1= 1 1 xor 0= 1 1 xor 1= 0 HiliteMenuItem VB声明 Declare Function HiliteMenuItem Lib "user32" Alias "HiliteMenuItem" (ByVal hwnd As Long, ByVal hMenu As Long, ByVal wIDHiliteItem As Long, ByVal wHilite As Long) As Long 说明 控制顶级菜单条目的加亮显示状态 返回值 Long,非零表示成功,零表示失败 参数表 参数 类型及说明 hwnd Long,拥有顶级菜单的一个窗口的句柄 hMenu Long,hwnd窗口的顶级菜单的句柄 wIDHiliteItem Long,欲加亮或撤消加亮的菜单条目的标识符。倘若在wHilite参数中设置了MF_BYCOMMAND标志,这个参数就用于指定要改变的菜单条目的命令ID。如果设置的是MF_BYPOSITION标志,这个参数就用于指定条目在菜单中的位置(第一个条目的位置为0) wHilite Long,一系列常数标志的组合。其中包括MF_BYCOMMAND或MF_BYPOSITION,指出要改变的条目。也包括MF_HILITE,用于设置加亮状态;或者MF_UNHILITE,用于撤消加亮状态 由... 展开
yzy8000 | 发布于2008-02-18 20:57
评论
1 and 0 =0
1 or 0 =1

1 xor 0 =1
1 xor 1=0
0 xor 0 =0
0 xor 1=1

就是相同为0,不同为1
cwa9958 | 发布于2008-02-18 18:43
评论

为您推荐: