操作符
一.算术操作符: + - * % /
1.除了%操作符之外,其他的几个操作符可以作用与整数和浮点数,如:5%2.0//error.
2.对于操作符,如果两个操作数都为整数,执行整数除法而只要有浮点数执行的就是浮点数除法。
3.%操作符的两个操作数必须为整数。
二.移位操作符:<< >>
1.<<左移操作符:左边抛弃,右边补0
int num = 10;
//00000000000000000000000000001010//num在内存中的二进制
num<<1
//00000000000000000000000000010100
2.>> 右移操作符 ( 移动的是二进制位)
右移操作符有两种移动:
(1).算术右移,移动的是补码,右边丢弃,左边以和符号位一样的数字进行补位:0为正,1为负。
(2).逻辑右移,右边丢弃,左边补0。
如果为正数,代码演示如下:
#include <stdio.h>
int main()
{
int a = 16;//16放在a里,a是整型,4个字节,32个比特位
int b=a>>1;//将a的值右移赋值给b,00000000000000000000000000010000
//右移一个把0丢弃,左边补0
printf("%d\n",b);
return 0;
}
运行结果为:8
如果为负数:例如:(代码如下:)
#include <stdio.h>
int main()
{
int a = -1
//我们假设,a是-1。原码是:10000000000000000000000000000001
//对于正数,反码与其原码相同;对于负数,反码是在其原码的基础上,符号位保持不变,其他位按位取反,即把0变为1,1变为0。则反码是:11111111111111111111111111111110
//补码是:对于正数,补码与其反码相同;对于正数ÿ