C 语言程序,将十进制转换为二进制并计算其中“1”的数量


2022年4月10日, Learn eTutorial
1370

为了更好地理解,我们始终建议您学习下面列出的C语言编程基础主题

什么是十进制和二进制数系统?

在这个 C 语言程序中,我们需要将十进制数转换为二进制,并且还需要计算“1”的数量。使用 C 语言程序将十进制数转换为二进制数非常简单。二进制数是只包含零和一的数。我们必须将这些零和一转换为十进制系统表示的数字。在个人电脑出现后,二进制数系统变得非常重要,因为个人电脑只能读取称为机器语言的二进制数。二进制数用下标2表示,十进制数用下标10表示。

如何在 C 语言中将十进制转换为二进制?

首先,我们必须声明一些变量“num, dnum, rem, basebin, count”,数据类型为long。我们使用变量“num”来存储十进制数,使用变量“count”来计算二进制数中“1”的数量。从用户获取十进制数后,开始一个 while 循环,直到该数为零。使用模运算符获取余数。如果余数是一,则将变量“count”增加1。然后应用公式。

            bin = bin + rem * base
            num = num / 2 
            base = base * 10

 

之后,我们将使用printf方法显示输入数字为“dnum”,其等效二进制数为“bin”。我们还将显示二进制数中“1”的数量为count

算法

步骤 1: 包含头文件以在 C 语言程序中使用内置函数。

步骤 2: 声明变量“numdnumrembasebincount”为Long数据类型。

步骤 3: 从用户读取十进制整数,并将其保存到“num”中。

步骤 4: 将数字“num”复制到“dnum”中。

步骤 5: 使用条件为“num>0”的“while loop”执行步骤 6。

步骤 6: 计算“rem = num % 2”。然后检查“rem == 1”,如果为真,则将 Count 增加 1。这是为了获取二进制数中“1”的数量。

步骤 7: 计算“bin = bin + rem * base”、“num = num/2”和“base = base * 10”,以找到二进制数

步骤 8: 重复步骤 5。

步骤 9: 显示输入数字为“dnum”,其等效二进制数为bin

步骤 10: 显示二进制数中1的数量为count

C 语言源代码

                                          #include <stdio.h>

void main() {
  long num, dnum, rem, base = 1, bin = 0, count = 0;
  printf("Enter a decimal integer\n");
  scanf("%ld", & num);
  dnum = num;
  while (num > 0) {
    rem = num % 2;
    if (rem == 1) /*To count no.of 1s*/ {
      count++;
    }
    bin = bin + rem * base; /*converting decimal into binary*/
    num = num / 2;
    base = base * 10;
  }
  printf("Input number is                   = %d\n", dnum);
  printf("Its Binary equivalent is          = %ld\n", bin);
  printf("No.of 1's in the binary number is = %d\n", count);
} /* End of main() */
                                      

输出

Enter a decimal integer

75
Input number is                   = 75
Its Binary equivalent is          = 1001011
No.of 1's in the binary number is = 4

RUN2

Enter a decimal integer

128
Input number is                   = 128
Its Binary equivalent is       = 10000000
No.of 1's in the binary number is = 1