#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
int num = -1;
int count = 0;
while (num)
{
num = num & (num - 1);
count++;
}
printf("count = %d\n", count);
system("pause");
return 0;
}
- 计算机里存放的都是数据的补码,正数的原反补都相同,负数的补码=原码+1
- 位操作符: &与操作符 |或操作符 ^异或操作符
- 两个相同的数字异或为0
- 两个相同的数字与为1
- 1&0=0 1&1=1
- 1||0=1 0||0=0