C语言编写:输入一个整数,求该整数的二进制中有几个1 ;
时间: 2024-10-13 20:16:53 浏览: 48
在C语言中,你可以通过遍历整数的二进制表示并计数其中的1来实现这个功能。这里有一个简单的示例程序:
```c
#include <stdio.h>
#include <math.h>
int countBits(int num) {
int count = 0;
while (num != 0) {
count += num & 1; // 如果最低位是1,则加1
num >>= 1; // 右移一位,去掉最低位
}
return count;
}
int main() {
int number;
printf("请输入一个整数: ");
scanf("%d", &number);
int bit_count = countBits(number);
printf("给定整数 %d 的二进制中有 %d 个1.\n", number, bit_count);
return 0;
}
```
在这个程序中,`countBits`函数通过位操作计算输入数字的二进制中1的数量。`num & 1`检查当前位是否为1,如果是则`count`加1,然后`num >>= 1`将数字右移一位。当数字变为0时,循环结束。
相关问题
用C语言编写一个二进制整数转十进制整数的程序,并且能循化持续输入数据
下面是一个将二进制整数转换为十进制整数的C语言代码:
```
#include <stdio.h>
#include <math.h>
int main()
{
long long binaryNumber, decimalNumber = 0, i = 0, remainder;
while (1) {
printf("Enter a binary number: ");
scanf("%lld", &binaryNumber);
while (binaryNumber != 0) {
remainder = binaryNumber % 10;
decimalNumber += remainder * pow(2, i);
++i;
binaryNumber /= 10;
}
printf("Decimal number: %lld\n", decimalNumber);
i = 0;
decimalNumber = 0;
}
return 0;
}
```
这段代码实现了循环输入二进制数字,并将其转换为十进制整数,最后打印转换后的十进制数字。
用c语言程序编写(使用while语句):输入一个十进制整数,输出与其相等的二进制形式。将二进制保存在一个数组中,然后按相反的顺序输出。
```
#include <stdio.h>
int main()
{
int decimal, binary[32] = {0}, i = 0;
printf("请输入一个十进制整数:");
scanf("%d", &decimal);
while (decimal > 0)
{
binary[i] = decimal % 2;
decimal /= 2;
i++;
}
printf("二进制形式为:");
for (int j = i - 1; j >= 0; j--)
{
printf("%d", binary[j]);
}
return 0;
}
```
运行结果:
```
请输入一个十进制整数:10
二进制形式为:1010
```
阅读全文