位与运算符 在权限中的使用

             /***
*  "&" 与运算符
*  “a”的值是129,转换成二进制就是10000001,而“b”的值是128,转换成二进制就是10000000。根据与运算符的运算规律,
          只有两个位都是1,结果才是1,可以知道结果就是10000000,即128。
*  //类似A  是否包含 B的权限集  >>> 是 返回128  否返回0   多用于权限界定

*/

        System.out.println("'&' 与运算符  (1 + 4)& 1  返回值 为:" + ( (1 + 4)& 1));  

/***
*  "|" 或运算符
*   两个位只要有一个为1,那么结果就是1,否则就为0
*   此类运算符  多用于 权限集A与权限集B 获取A和B的共有权限集
*/
        System.out.println("'|' 或运算符  (1 + 4)| 2  返回值 为:" +  ((1+4) | (2))); 

/**
* “~”非运算符
* 如果位为0,结果是1,如果位为1,结果是0
* 此类运算符 多和& 一起使用     用法: A权限集 移除B权限集 返回剩下的权限。
*/
        System.out.println("'~' 非运算符  (1 + 4)& ~1 返回值 为:" +  ((1 + 4) &~1)); 
/**
* “^”异或运算符
* 两个操作数的位中,相同则结果为0,不同则结果为1。
*  权限A与权限B 取其不同 
*/
	System.out.println("'^' 与运算符  (1 + 4)^ 1  返回值 为:" +  ((1 + 4) ^ 1)); 

'&' 与运算符  (1 + 4)& 1  返回值 为:1
'|' 或运算符  (1 + 4)| 2  返回值 为:7
'~' 非运算符  (1 + 4)& ~1 返回值 为:4
'^' 与运算符  (1 + 4)^ 1  返回值 为:4


猜你喜欢

转载自blog.csdn.net/yan822/article/details/77298870