Java 二进制

按位与、或、异或等运算方法: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表示某位上没有权限。

相关文章
相关标签/搜索