C语言十进制转为二进制。。

如题所述

第1个回答  2019-03-31
方法不好,有个致命问题:pow是double结果,数据计算机可能产生误差。
给你的好的方法。
#include<stdio.h>
#include
<stdlib.h>
#include
<math.h>
int
main
(void)
{
int
a=0,i=0;
char
binary[33];
printf("请输入一个十进制数\n");
scanf("%d",&a);
printf
("它的八进制形式是%o\n",
a);
printf
("它的十六进制形式是%x\n",
a);
while(a>0)
{
binary[32-i]='0'+a%2;
a/=2;
i++;
}
printf("它的二进制形式是%s\n",binary+33-i);
return
0;
}
第2个回答  2019-04-01
你的转换思路完全错误!不说4的问题,你算一下,100
000
000
的二进制是多少位……
整数转二进制,你需要将转完后的二进制存入一个32为字符数组中,这样才能行!你可以算一下,32位二进制转成10进制是多少……
至于怎样将是十进制转成二进制,简单就是将是十进制数对2求余,将余数保存到字符数数组,将十进制数在除2,在求余,在除2……直到十进制数为0,退出循环!!!
将字符数组倒转输出即可!!
看你是想编程的人,将思路说一下,希望对你有帮助……

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网