按位与、或、异或等运算方法:html
http://blog.sina.com.cn/s/blog_618199e60100ka5b.htmlspa
运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;htm
即:两位同时为“1”,结果才为“1”,不然为0。blog
应用:get
假设咱们规定一我的有听,说,读,写,四个权限。权限
用二进制位0111 0000表示,第7,6,5,4位对应听,说,读,写,四个权限。1表示有权限,0表示无权限。二进制
若是服务端给咱们传递了一个112,那么他有什么权限呢?程序
将112转换成二进制:01110000,可见:他有听,说,读的权限。方法
那么用程序怎么判断某一位是不是1呢?im
咱们能够用2的6,5,4,3次方,分别跟传递进来的112进行与运算。若是结果是0,表示无权限。不然表示有权限。
112 0111 0000 传递的值
2^6 0100 0000 相与结果不是0,第7位有听权限。
2^5 0010 0000 相与结果不是0,第6位有说权限。
2^4 0001 0000 相与结果不是0,第5位有读权限。
2^3 0000 1000 相与结果为0,第4位没有写权限。
两位同时为“1”,结果才为“1”,不然为0。
总结:传递的值与某位相与的结果若是是0表示某位上没有权限。