操作符详解1

算术操作符

+  加法运算 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就是补码

猜你喜欢

转载自blog.csdn.net/qq_52988578/article/details/116530029