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

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

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

以十进制数字10为例

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

纯数学的方法如下:

10÷2=5余0

5÷2=2余1

2÷2=1余0

1÷2=0余1

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

具体的代码实现如下:

#include<stdio.h>
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函数进行实现,但是那是应用方法了,本文只介绍基础的数学方法实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值