C语言:十进制转换为二进制的数学方法

首先我们需要厘清逻辑:十进制如何转换为二进制

我们采用的方法——短除法

以十进制数字10为例

我们的目的是将该十进制的数字转换为二进制的数字

纯数学的方法如下:

10÷2=5余0

5÷2=2余1

2÷2=1余0

1÷2=0余1

再把余数从下往上书写,即1010便可得到10对应的二进制数据

具体的代码实现如下:

#include
int main()
{
    int a,b,k,i;
    int remainder[30];
    while(1)
    {
        //定义了一个remainder数组,用来收集短除法除得的余数,栈倒序输出。
        printf("请输入一个十进制数:  ");
        scanf("%d",&a);
        k=0;
        while(a!=0)
        {
            b=a/2;
            k++;
            remainder[k]=a-b*2;
            a=a/2;
        };
        printf("转换成二进制数是:  ");
        for (i=k; i>=1; i--)
        {
            printf("%d",remainder[i]);
        }
        printf("\n");
    }
    return 0;

当然也有更简单的itoa函数进行实现,但是那是应用方法了,本文只介绍基础的数学方法实现

你可能感兴趣的:(C语言学习,c语言)