ASP AND 的逻辑运算

来源:互联网 发布:java代理实现 编辑:程序博客网 时间:2024/04/29 10:22

这是and运算的一个很有趣的特点,and运算是按位与的,50=110010,191=10111111,(110010)AND(10111111)=(110010),这个不等于零,所以返回true,而192=(11000000),(110010)AND(11000000)=0,这当然返回False了。再举个例子50 AND 194=True,因为194=(11000010),(110010)AND(11000010)=(10),所以也是True。其实这就是判断50的二进制代码和191的二进制代码中有没有位置相同且同为1的位。这很有用处。

比方说,某系统有10项功能,用户可以具备其中的一项或某几项,我们约定,用户的功能表示为一个二进制数,从高位到低位依次表示用户是否具备某项功能。那么用户A的功能为1000000000,这表示A只具备第一项功能,其他功能无权访问。用户B的功能为0100000000。假设页面X允许具备2或3或4项功能权限的用户进入,那么页面的进入判定条件可写为
0111000000 AND UserFunction  'UserFunction 为某用户的功能权限

那么用户A进入该页面时0111000000 AND 1000000000=False,表明他没有权利进入本页
用户B进入该页面时0111000000 AND 0100000000=True,表明用户B可以进入本页

但是一般写的时候我们会把0111000000 写成448,1000000000写成512,那么页面判断的时候就是448 And 512了

原创粉丝点击