目录
插曲:符号位也是参与运算的。
1.算数操作符
+ - * / %
1.除了%操作符之外,其他的几个操作符可以作用于整数和浮点数。
2.对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
两个整数除,最终结果还是整数double打印也是4.000000。
为什么打印的不是4.500000,所以把2改成2.0就成为了浮点数。
3.% 操作符的两个操作数必须为整数。返回的是整除后的余数。
2.移位操作符
<< 左移操作符
>> 右移操作符
注意:移位操作符移动的是二进制位(二进制补码)。
左移操作符移位法则:
左边抛弃,右边补0
右移操作符移位法则:
首先右移运算分为两种:逻辑移位和算术移位。
一个整数存到一个变量中,然后进行右移时,需要看这个变量是否有符号,若是有符号就在左边补充符号位(是0就补充0,是1就补充1)这叫算术右移;若这个变量是无符号(和最高为没有关系了),就补充0这叫逻辑右移。意思就是说:无符号变量(最高位不是符号位了)就在左边补充0(固定死了),这就是逻辑右移。对于有符号的变量就看最高位,最高位若是0就补充0,若是1就补充1。
总结:无符号右移就是逻辑移位,有符号右移就是算术移位。
1.逻辑移位:左边用0填充,右边丢弃
2.算术移位:左边使用原该值的符号位填充,右边丢弃。
3.位操作符
& 按位与
| 按位或
^ 按位异或
注意:它们的操作数必须是整数。符号位也参与运算。
异或的题目:异或具有交换律
不能创建临时变量(第三个变量),实现两个数交换。
#include <stdio.h&g