在此 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/10 和 base=base*2 找到十进制数。重复循环,并显示二进制数 bnum 及其十进制等价数 dec。
第一步: 包含头文件,以便在C程序中使用内置函数。
步骤 2:声明整数变量 'num'、'bnum'、'dec=0'、'base=1' 和 'rem'。
步骤 3:从用户读取一个二进制数,并将其存储到 bnum 和 num 中。
步骤 4:使用条件为 num>0 的 'while 循环',执行步骤 5。
步骤 5: rem=num 并计算 dec=dec+rem*base
步骤 6: num = num / 10,base = base * 2;
步骤 7:重复步骤 4
步骤 8:将二进制数显示为 bnum。
步骤 9:将其十进制等价数显示为 'dec'。
#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