/***
* "&" 与运算符
* “a”的值是129,转换成二进制就是10000001,而“b”的值是128,转换成二进制就是10000000。根据与运算符的运算规律,
只有两个位都是1,结果才是1,可以知道结果就是10000000,即128。
* //类似A 是否包含 B的权限集 >>> 是 返回128 否返回0 多用于权限界定
/***
* "|" 或运算符
* 两个位只要有一个为1,那么结果就是1,否则就为0
* 此类运算符 多用于 权限集A与权限集B 获取A和B的共有权限集
*/
/**
* “~”非运算符
* 如果位为0,结果是1,如果位为1,结果是0
* 此类运算符 多和& 一起使用 用法: A权限集 移除B权限集 返回剩下的权限。
*/
* “^”异或运算符
* 两个操作数的位中,相同则结果为0,不同则结果为1。
* 权限A与权限B 取其不同
*/
* "&" 与运算符
* “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