在一些高级语言中都有现成的将各种进制之间的转换函数,c语言中没有这种函数,自己写也很方便。这是我在一本书上看到的一道题。
- 题目描述:
-
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
- 输入:
-
输入可能包含多个测试样例。
对于每个输入文件,第一行输入一个整数T,代表测试样例的数量。对于每个测试样例输入为一个整数。
。n保证是int范围内的一个整数。
- 输出:
-
对应每个测试案例,
输出一个整数,代表输入的那个数中1的个数。
- 样例输入:
-
3 4 5 -1
- 样例输出:
-
1 2 32
给出我的答案:1 #include <stdio.h> 2 #include <stdlib.h> 3 //int binary[32]; 4 int main() 5 { 6 int i,m,count; 7 8 while (scanf("%d",&m)!=EOF) 9 { 10 count=0; 11 //memset(binary,0,sizeof(binary)); 12 for (i=31;i>=0;i--) 13 { 14 if (m>>i&1) 15 count++; 16 } 17 printf("%d ",count); 18 } 19 return 0; 20 //printf("Hello world! "); 21 //return 0; 22 }