
我们采用的方法——短除法
以十进制数字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函数进行实现,但是那是应用方法了,本文只介绍基础的数学方法实现
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)