📌  相关文章
📜  C程序以数字的二进制表示形式对零和一进行计数(1)

📅  最后修改于: 2023-12-03 15:14:26.125000             🧑  作者: Mango

C程序以数字的二进制表示形式对零和一进行计数

在计算机科学中,二进制是一种基数为2的数字系统,由数字0和1组成。在C语言中,我们可以使用二进制表示形式来计数数字中零和一的个数。

实现

以下是一个简单的C程序,用于计算数字的二进制表示形式中0和1的数量。

#include <stdio.h>

int main() {
    int number, n;
    int ones = 0, zeros = 0;

    printf("Enter a number: ");
    scanf("%d", &number);

    n = number;

    while(n > 0) {
        if(n % 2 == 0) {
            zeros++;
        }
        else {
            ones++;
        }
        n /= 2;
    }

    printf("The binary representation of %d has %d zeros and %d ones.", number, zeros, ones);

    return 0;
}
解释
  1. 我们首先声明了必要的变量,number, n, ones, 和 zeros
  2. 用户被要求输入一个整数。我们使用scanf函数来读取用户输入的数字并将其存储在 number 变量中。
  3. 我们将 number 的值复制到 n 中,以便我们可以在循环中操作它,而不会改变原始输入值。
  4. 我们使用while循环来迭代 n。在每次迭代中,我们使用模运算来确定 n 的当前二进制表示形式中是否有一个零或一个一。如果 n 在进行除以2的操作后余数为0,则我们将 zeros 变量增加1,否则我们将 ones 变量增加1。
  5. 最后,我们输出 number 的二进制表示形式中零和一的总量。
示例

下面是一个示例输出,当用户输入数字20时:

Enter a number: 20
The binary representation of 20 has 2 zeros and 2 ones.
结论

使用C语言,我们可以轻松地计算数字的二进制形式中零和一的数量。这可以用于处理二进制数据时的各种应用。