请老教了!,如何运用位运算实现权限的分配!
  本人这么想的:
  
  如:A、 某人的权限代码是:101101 (代表六个表,其中第1,3,4,6 个表具有修改权限)
     
      B、 如要要得到表3的权限,则必须与101101 与 X ,结果为: 000100 
    
    
   请问:如何用VB 的位运算实现!(二进制的运算??)谢谢了。

解决方案 »

  1.   

    获得1-3位的值:
    dim A as long
    dim No1 as boolean
    dim No2 as boolean 
    dim No3 as boolean
    A=5  '101
    No1 = A and 1   '5=101 ,1=001 ,(101 and 001) =001   
    No2 = A and 2   '5=101 ,2=010 ,(101 and 010) =000   
    No3 = A and 4   '5=101 ,4=100 ,(101 and 100) =100
    Msgbox "No1:" No1 & ";No1:" & No2 & ";No3:" & No3
      

  2.   

    设权限数为X,想得到第n位Bit是1或0用此法
    if (x and 2^n)=2^n then
    Msgbox "1"
    else
    Msgbox "0"
    end if
      

  3.   

    是呀,都说过了,怎么还不明白?其实这是程序设计的一个基础方法,并不是只有你这样想,大多数程序都用此法记录信息,一个Long型数据可代表32种权限的任意组合。你无需解释都明白!别人写回复要细看,不然你就真学不到东西了。
      

  4.   

    谢谢,,谢谢
     WallesCai(皮厚怎么了,摔跤不疼,冬天不冷,夏天还不怕蚊子呢!)  homezj(小吉)  教训得是!!:)清楚了!!!谢谢了。
     
      

  5.   

    //大多数程序都用此法记录信息
    2的幂的和来表示一个组合,
    典型的比如Msgbox的第二个参数