我在书上看到有提到位掩码技术,但弄不明白是怎么回事,恳请高人指点迷津.下面是书上的例子
假设键盘事件过程传递参数shift=5,转换为二进制是101,由此
Shift and acShiftmask=>Shift and 1=>1>0 故Shift键被按下
Shift and acCtrlmask=>shift and 2=>0=0 故Ctrl键没被按下
shift and acAltmask=>shift and 4=>4>0 故Alt键被按下
这个就是位域与操作,你这个例子是其中的一个应用,就是判断某个数的二进制的某位是1还是0。
你说的例子就是把两个数都化为二进制,然后对应的位分别进行And(与)操作,得到的就是第3个数,由于第二个数都是只有一个位是1,其它的都是0,所以得到的结果当然只有两个,第一个数对应位是1时,结果就是第二个数(非零),否则就是0。这样就可以用一个整数,保存和传递多个逻辑型变量,比如msgbox的第二个参数,就可以利用+号同时设置返回结果、按钮个数、显示图形等。
你上面三条式子,用二进制表示就是:
101 And 001 = 001
101 And 010 = 000
101 And 100 = 100
第二条式子中,两个数的第二位是 0 and 1 = 0,所以结果就是000,含义就是第一个数(5)的二进制第二位是0。
位操作在加密技术中最常用到。
感谢二楼的回复,我大概看明白了您的解答,但因为我见到的相关应用太少,所以对您说的“msgbox的第二个参数,就可以利用+号同时设置返回结果、按钮个数、显示图形等”非常感兴趣,您能否就这个有关msgbox第二个参数的位操作举个更详细一点例子?非常感谢!
总记录:2篇 页次:1/1 9 1 :