》》》&&是逻辑与运算符,|| 是逻辑或运算符 !是逻辑非运算符
逻辑与运算符:全为真(1)即结果为真(1),一个为假即全为假(0)
逻辑或运算符:全为假(0)即结果为假(0),一个为真即全为真(1)
逻辑非:非真(1)即为假(0)非假即为真。
&是按位与运算符,| 是按位或运算符
为整型和 bool 类型预定义了二进制 & 运算符。
对于整型,& 计算操作数的逻辑按位“与”。
》》对于 bool 操作数,& 计算操作数的逻辑“与” 和 【&&】 ;
也就是说,当且仅当两个操作数均为 true 时,结果才为 true。
& 运算符计算两个运算符,与第一个操作数的值无关,即 不短路”与“。
&& 运算符计算两个运算符,与第一个操作数的值有关,即 短路”与“。
//短路与&& 的特性就是有一个假 即为假。那么如果左边为假,右边就不会执行了;如果左边为真,右边继续判断表达式的真假
if((左边表达式)&&(右边表达式)){ }//不短路与& 和短路与作用一样。但是如果左边为假,右边可以执行;如果左边为真,右边继续判断表达式的真假
if((左边表达式)&(右边表达式)){ }//短路或|| 的特性就是有一个真 即为真。那么如果左边为真,右边的表达式就不会执行了;如果左边为假,右边继续判断表达式的真假
if((左边表达式)||(右边表达式)){ }//不短路或| 和短路或作用一样。但是如果左边为真,右边表达式可以执行;如果左边为假,右边也则继续判断表达式的真假
if((左边表达式)|(右边表达式)){ }
二进制 所有 按位xxx运算符 都要转换成2进制 在操作
》》按位与运算符(&)
运算规则:如果两个二进制数的同一个位数上的数都为1,则当前位为1,否则为0.
示例:0&0=0; 0&1=0; 》》
可以这么理解 》》》》》
false & false =》 false
false & true =》》》 false
》》按位或运算符(|)
运算规则:如果两个二进制数的同一个位数上的数有一个不为0则当前位为1,否则为0.
示例:0|0=0; 0|1=1; 1|0=1; 1|1=1;
可以这么理解 》》》》》
false | false ===》 false
false | true ===》 true
true | false ===》 true
true | true ==》 true
》》取反运算符(~)
参加运算的一个数据,按二进制位进行“取反”运算。
示例:~1=0; ~0=1;
》》》异或运算符(^)
用于比较两个二进制数的相应位。在执行按位异或运算时,如果两个二进制数的相应位都为1或两个二进制数的相应位都为0,则返回 0;如果两个二进制数的相应位其中一个为1,另一个为0,则返回 1;
10^15=5
示例:12^15= 3
二进制算法:
12 ===> 二进制 1100
15 ===> 二进制 1111
3 ===> 二进制 0011
1100
^ 1111
0011
<< 、>>