算术操作符
+ 加法运算 eg:i=7+8 => i=15
- 减法运算 eg:i=8-5 => i=3
* 乘法运算 eg:i=2*3 => i=6
/ 除法运算 eg:i=9/3 => i=3
% 取余运算 eg:i=9/4 => i=1
注:
- 1.除了%操作符之外,其它的操作符可以作用于整数和浮点数
- 2.对于/操作符如果两个操作符都为整数,执行整数除法。而只要有浮点数执行的就是执行浮点数除法。
- 3.%操作符的两个操作数必须为整数,返回的是整数之后的余数。
移位操作符
<< 左移操作符
>> 右移操作符
左移操作符移位规律:
- 左边抛弃,右边补0
int num=10
00000000000000000000000000001010//num在内存中的二进制
00000000000000000000000000010100//num左移一位产生的结果
num<<1
右移操作符移位规律:
- 1.逻辑位移:右边抛弃,左边补0
- 2.算数位移:左边用原该值的符号位填充,右边抛弃
int num=-1
11111111111111111111111111111111//num内存中存储的补码
算数右移:左边用原该值的符号位填充
*1*11111111111111111111111111111111//由于是负数,所以符号位为1,即左边补1
逻辑右移:左边补0
01111111111111111111111111111111//最后一个1被删除了
注:对于位移运算符,不要移动符号位,这个是标准未定义的。
位操作符
& //按位与
| //按位或
^ //按位异或
注:它们的操作数必须是整数
所以的位操作符实际上是按数的二进制进行转换
&:两个进行操作的数,如果二进制的对应位都是1,才为1,负责就是0
|: 两个进行操作的数,只要二进制的对应位有1,就是1
^: 两个进行操作的数,二进制的对应位相同为0,相异为1
赋值操作符
+=
-=
*=
/=
%=
>>=
<<=
&=
|=
^=
原码反码补码
原码:二进制序列就是原码
反码:原码符号位不变,其它位取反就是反码
补码:反码+1就是补码