Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

什么叫位掩码技术?

西岭村人  发表于:2009-10-16 23:40:50  
复制

我在书上看到有提到位掩码技术,但弄不明白是怎么回事,恳请高人指点迷津.下面是书上的例子

 

假设键盘事件过程传递参数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键被按下

 

Top
trynew 发表于:2009-10-17 10:58:07

这个就是位域与操作,你这个例子是其中的一个应用,就是判断某个数的二进制的某位是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。

位操作在加密技术中最常用到。

 

 



西岭村人 发表于:2009-10-17 14:04:12
感谢二楼的回复,我大概看明白了您的解答,但因为我见到的相关应用太少,所以对您说的“msgbox的第二个参数,就可以利用+号同时设置返回结果、按钮个数、显示图形等”非常感兴趣,您能否就这个有关msgbox第二个参数的位操作举个更详细一点例子?非常感谢!

总记录:2篇  页次:1/1 9 1 :