十进制整数转二进制

十进制整数转二进制

方法:

将要转化的十进制数不断整➗2直至为0,得到的余数反向排列得到的便是该十进制数的二进制数
123的实例

代码implement

关键:用数组储存整除得到的余数,这样才能实现:

  1. 输出二进制数(反向直接打印)
  2. 求出二进制数(通过反向叠加求和)
/*

   完成一个函数,输入值为整数,输出该值的二进制。
   (这里的代码是上面的第2个情况的实现)

*/
#include<stdio.h>
long int_to_binary(int num);

int main()
{
   int num;
   printf("请输入一个整数:");
   scanf("%d",&num);
   //整数转为二进制
   long binary=int_to_binary(num);
   printf("二进制为:%ld\n",binary);
}

long int_to_binary(int num)
{
   long binary,sum=0;
   int a[100],count=0,rest;

   while(num!=0)
   {
      //求出num除以2的余数,并将其本身除以2
      rest=num%2;
      num/=2;

      //用数组存储余数
      count++; //count在给数组赋值的前面放置,这样虽然会导致序号从1开始,但是也可以保证最后count就是二进制的位数
      a[count]=rest;

   }
   for(int i=count;i>0;i--)
   {
      sum=sum*10+a[i];//再将数组反向遍历求和即是其二进制数
   }
   binary=sum;

   return binary;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GOAT_0x02

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值