一、逻辑运算符
&& 和 || 与 & 和 | 的运行结果是一样的,只不过&和|会将逻辑运算符两边的条件都会判断一遍,但是&& 和 ||就不一定会,比如A&&B,若A为假,那么整体就为假,B就不需要判断(即B处的代码就不会运行)。&& 和 ||被称为短路逻辑运算符。
二、三元运算符
格式:关系表达式?表达式1:表达式2;
范式:求两个数最大值
int max = a>b?a:b;
三、运算符的优先级
小括号优先于所有。
四、原码、反码、补码
原码:十进制数据的二进制表示形式,最左边是符号位,0为正,1为负。利用原码对正数进行计算是不会有问题的。但是如果是负数计算,结果就出错,实际运算的结果,跟我们预期的结果是相反的。
反码:为了解决原码不能计算负数的问题而出现的。
计算规则:正数的反码不变,负数的反码在原码的基础上,符号位不变,数值取反,0变1,1变0
反码的弊端:负数运算的时候,如果结果不垮0,是没有任何问题的,但是如果结果跨0,跟实际结果会有1的偏差。
补码出现的目的:为了解决负数计算时跨0的问题而出现的。
补码的计算规则:正数的补码不变,负数的补码在反码的基础上+1。另外补码还能多记录一个特殊的值-128,该数据在1个字节下,没有原码和反码。
补码的注意点:计算机中的存储和计算都是以补码的形式进行的。
其他的运算符:
运算符 | 含义 | 运算规则 |
& | 逻辑与 | 0为false 1为true |
| | 逻辑或 | 0为false 1为true |
<< | 左移 | 向左移动,低位补0(移一次可看为乘2) |
>> | 右移 | 向右移动,高位补0或1(移一次可看为除2) |
>>> | 无符号右移 | 向右移动,高位补0 |