分类
算术操作符
移位操作符
针对二进制
<< >>
操作数只能是整数
左移规则:左边抛弃,右边补零
右移规则:分为两种
1.逻辑移位(左边用0填充,右边丢弃)
2.算术移位(左边用原该值符号位填充,右边丢弃
写法
int num=10;
num << 1
位操作符
&按位与、| 按位或、^ 按位异或
操作数必须为整数
二进制数
位操作符中 只有 ~ 是单目操作符,其他都是双目操作符
正数在内存中的原反补码相同
负数的原码得到反码(按位取反,符号位不变),反码得到补码(加1),反得到原码 (符号位不变按位取反再加1)
#include <stdio.h>
int main()
{
int num = -1;
int i = 0;
int count = 0;//计数
for(i=0; i<32; i++)
{
if( num & (1 << i) )
count++;
}
printf("二进制中1的个数 = %d\n",count);
r