算术右移与逻辑右移的区别:
1、右移移动的是二进制位
2、右移操作符分为算术右移操作符和逻辑右移操作符:
算术右移操作符:
右边(低位)舍去,左边(高位)补原符号位,原符号位为0就补0,为1就补1;
3、逻辑右移操作符:右边(低位)舍去,左边(高位)补0
4、左移操作符:左边舍去,右边补0;
举例子:a>>1:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a = 8; //00000000000000000000000000001000
int b = a >> 1;
printf("b = %d\n", b); // b = 4
return 0;
}
图解如下:
执行结果如下: