目录
算术操作符:
+:加法
-:减法
*:乘法
/:除法
%:求余( 3 % 2 = 1;)
注意:处理的数据都是整型,如果要处理浮点型数据(小数),两边需要有至少一个小数
因为,/默认处理的是整型的数据
位操作符:& | ^
(位操作的运算,需要写出数字的二进制形式,再进行计算对比)
位操作符用于控制二进制
一个整型是4个字节,一个字节8个比特位,一个比特位就是一个二进制位
关于二进制:有符号位置首位置代表正负,1代表负数,0代表正数
比如1&1:1的二进制位是:00000000000000000000000000000001
注意:计算机储存的都是补码,显示的是原码。因此,位操作符操作的都是补码
注意:对于正数来说,原码,反码,补码是相同的,不需要计算
只有对于负数来说,原码,反码,补码才需要计算
补码得到原码有两种方式:(注意:取反时,符号位不变)
一、先-1再取反
二、先取反再+1
按位与&:
只有两个都是1才是1,只要有一个是0则为0
1 1 -> 1
1 0 -> 0
0 1 -> 0
0 0 -> 0
按位或|:
只要有一个是1,结果为1
1 1 ->1
0 1 ->1
1 0 ->1
0 0 ->0
按位异或^:
相同结果为0,相反则为1(这个有些别扭,需要特别记忆)
1 1 ->0
1 0 ->1
0 1 ->1
0 0 ->1
相同为0,例如:a^a = 0,自己和自己按位异或计算,结果就是0;
而任何数字和0按位异或计算,将得到其本身,a ^ 0 = a;
这里有个实例: 不创建第三个中间变量交换两个变量值
关于++ 和 -- 前置和后置的关系:
前置:只要是前置,就是先加再使用,加减遵循同样的规则
Int A = 1;
Int B = 1;
B = ++A;
后置:只要是后置,就是不动,先使用,后加减
这里a的后置++不会影响b的值
Int A = 1;
Int B = 0;
B = A++;
位移操作符:处理的是二进制的数字
>> 右移
<< 左移
>>:二级制数字往右边移动一位,右边丢弃一个二进制位,左边补一个0或1,原来是负数补1,原来是负数补1;
相当于是十进制的数字除2
例如:
2的二进制: 00000000000000000000000000000010
往右移一位 00000000000000000000000000000001
这个值为1
右边丢弃一位,左边补进一位,正数补0,负数补1
<<:二进制数字往左边移动一位,左边的数字丢弃,右边补一个0,相当于乘2
2的二进制: 00000000000000000000000000000010
往左边移一位 00000000000000000000000000000100
这个数为4