#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> //NumberOf1就是计算参数n的二进制补码中有几个1 //123 //123%10 = 3 //123/10 = 12 //12%10 = 2 //12/10 = 1 //1%10 = 1 //1/10 = 0 /***************/ //15 - 000011111 //15%2 = 1 //15/2 = 7 - 00000111 //7%2 = 1 //7/2 = 3 - 00000011 //3%2 = 1 - 00000001 //3/2 = 1 - 00000001 //1%2 = 1 - 00000001 //1/2 = 0 - 00000000 int NumberOf1(int n) { int count = 0; int i = 0; for (i = 0; i < 32; i++) { if ((n >> 1) & 1 == 1) { count++; } } return count; } int main() { int n = -1; int ret = NumberOf1(n); printf("ret=%d\n", ret); return 0; }
浙公网安备 33010602011771号