使用 C 编程实现十进制到二进制的转换

问题

如何使用C语言中的函数将十进制数转换为二进制数?

解决方案

在这个程序中,我们调用一个函数到二进制文件中main()。被调用的二进制函数将执行实际的转换。

我们使用的逻辑称为将十进制数转换为二进制数的函数如下 -

while(dno != 0){

   rem = dno % 2;

   bno = bno + rem * f;

   f = f * 10;

   dno = dno / 2;

}

最后,它将二进制数返回给主程序。

示例

以下是将十进制数转换为二进制数的 C 程序 -

#include<stdio.h>

long tobinary(int);

int main(){

   long bno;

   int dno;

   printf(" 输入任何十进制数: ");

   scanf("%d",&dno);

   bno = tobinary(dno);

   printf("\n The Binary value is : %ld\n\n",bno);

   return 0;

}

long tobinary(int dno){

   long bno=0,rem,f=1;

   while(dno != 0){

      rem = dno % 2;

      bno = bno + rem * f;

      f = f * 10;

      dno = dno / 2;

   }

   return bno;;

}

输出结果

执行上述程序时,会产生以下结果 -

Enter any decimal number: 12

The Binary value is: 1100

现在,尝试将二进制数转换为十进制数。

示例

以下是将二进制数转换为十进制数的 C 程序 -

#include

#include <stdio.h>

int todecimal(long bno);

int main(){

   long bno;

   int dno;

   printf("输入一个二进制数: ");

   scanf("%ld", &bno);

   dno=todecimal(bno);

   printf("The decimal value is:%d\n",dno);

   return 0;

}

int todecimal(long bno){

   int dno = 0, i = 0, rem;

   while (bno != 0) {

      rem = bno % 10;

      bno /= 10;

      dno += rem * pow(2, i);

      ++i;

   }

   return dno;

}

输出结果

执行上述程序时,会产生以下结果 -

输入一个二进制数: 10011

The decimal value is:19

以上是 使用 C 编程实现十进制到二进制的转换 的全部内容, 来源链接: utcz.com/z/327581.html

回到顶部