C 语言程序,用于将二进制数转换为十进制数


2022 年 4 月 1 日, Learn eTutorial
1457

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

在此 C 语言程序中,我们需要将给定的二进制数转换为十进制数。使用 C 语言程序将二进制数转换为十进制数非常简单。二进制数是仅由表示的数字。因此,我们需要将这些零和一转换为由零到九的十进制系统表示的数字。二进制数的基数为 2,而十进制数的基数为 10

二进制数系统在计算机中至关重要,计算机只能读取二进制数,即机器语言。二进制数用下标 2 表示,十进制数用下标 10 表示。

如何将二进制转换为十进制?

在这个 C 语言程序中,我们使用一个 Mod 运算符在一个 'while 循环' 中将二进制转换为十进制。首先,我们使用 Mod 计算余数,然后我们将 'dec' 与 余数 * 基数 相加,基数初始化为 1。将数字除以 10 以删除最后一位,最后,我们将基数乘以 2 以获得输出。让我们举一个简单的例子来进一步理解这一点。

1. 设 '0010' 为二进制数。从右侧开始,将数字视为 2 的幂,即从右开始。

      0 - 2^0
      1 - 2^1
      0 - 2^3 

 

从二进制数的最后一位开始,将其每个数字分别乘以 2 的幂,然后将所有乘积相加,我们得到十进制数字 2

该程序的主要逻辑是将变量 'dec=0' 和 'base=1' 初始化。然后将二进制数读入 'num' 并将其复制到 'bnum' 中。使用条件为 'num>0' 的 'while 循环',使用 mod 运算符计算余数。然后通过 num=num/10base=base*2 找到十进制数。重复循环,并显示二进制数 bnum 及其十进制等价数 dec

算法

第一步: 包含头文件,以便在C程序中使用内置函数。

步骤 2:声明整数变量 'num'、'bnum'、'dec=0'、'base=1' 和 'rem'。

步骤 3:从用户读取一个二进制数,并将其存储到 bnumnum 中。

步骤 4:使用条件为 num>0 的 'while 循环',执行步骤 5。

步骤 5: rem=num 并计算 dec=dec+rem*base

步骤 6: num = num / 10base = base * 2

步骤 7:重复步骤 4

步骤 8:将二进制数显示为 bnum

步骤 9:将其十进制等价数显示为 'dec'。

C 语言源代码

                                          #include <stdio.h>

void main() {
  int num, bnum, dec = 0, base = 1, rem;
  printf("Enter a binary number(1s and 0s)\n");
  scanf("%d", & num); /*maximum five digits */
  bnum = num;
  while (num > 0) {
    rem = num%10; /* calculating reminder using mod operator */
    dec = dec + rem * base;
    num = num / 10; /* finding the decimal  */
    base = base * 2;
  }
  printf("The Binary number is = %d\n", bnum);
  printf("Its decimal equivalent is =%d\n", dec);
} /* End of main() */
                                      

输出

Enter a binary number(1s and 0s)
10101

The Binary number is = 10101

Its decimal equivalent is =21