永发信息网

c语言,将十进制转化为二进制

答案:4  悬赏:0  手机版
解决时间 2021-03-19 23:19
c语言,将十进制转化为二进制
最佳答案
十进制转二进制可以使用库函数itoa。
itoa函数原型:char*itoa(int value,char*string,int radix);
功能:将任意类型的数字转换为字符串。在中与之有相反功能的函数是atoi。
nt value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等。
参考代码:
#include 
#include
int main()

int i=10;
char a[100];
itoa(i,a,2);
printf("%s
",a);
return 0; 
}
全部回答
感觉你这个好像不对,而且pow函数的返回值是double类型的,所以if(n/pow(2,i)==1)这个条件永远满足不了,用int存储最后的结果也不好,因为结果很容易溢出,pow的结果也容易溢出,下面是我写的一个,参考下吧,希望对你有帮助

int dectobin(int n,char* des){
int i=0;
int num,tmpn = n;
num=0;
do
{
for (int j = i; j > 0; j--)
{
des[j] = des[j-1];
}
des[0] = tmpn%2+'0';
i++;
tmpn /= 2;
} while (tmpn);

return num;
}

int _tmain(int argc, _TCHAR* argv[])
{
int i,n;
char tmp[1024] = {0};
printf("请输入十进制数:");
scanf("%d",&n);

i=dectobin(n,tmp);
printf("%s\n",tmp);

return 0;
}
int dectobin(int n){
int i;
int num;
num=0;
if(n>1023||n<1) return 0;//safe done
for(i=10;i>=0;i--){ //10 is max limit
if(n/(int)pow(2,i)==1){
num=num+(int)pow(10,i);
n=n-(int)pow(2,i);
if(n==0)
break;
}
}
return num;
}

你这个程序逻辑,最多只能支持到1023,因为你用int表达二进制,最多只能表示10个1。

换一种思路,会更简单些,给点时间,我写一个给你。
#include

void dectobin(int n, char *po)
{
char chtmp[33]; //32 整数,使用33字节存储
int i, cnt = 0;
while (n != 0)
{
chtmp[cnt] = n % 2 + '0';
n /= 2;
cnt++; //累计位数
}
//以上字符方向是反的,现调整过来
for (i = 0; i < cnt; i++)
po[i] = chtmp[cnt - 1 - i];
po[i] = 0; //字符串结尾的 0
}
void dectobin2(int n, char *po)
{
int i, j;
unsigned int k = 0x80000000; //构造一个第 31 位是 1,其他位全为 0 的数
for (i = 0; i < 32; i++)
{
j = n & k; //取出 n 的第 31 - i 位数
if (j == 0)
po[i] = 0;
else
po[i] = 1;
k >>= 1;
}
//如果有必要,除去二进制数前面的 0

}

int main()
{
int i, n = 159753; //为方便测试
//scanf("%d", &n);
char ch[33];
dectobin(n, ch);
printf("%s\n", ch);
dectobin2(n, ch);
for (i = 0; i < 32; i++)
{
printf("%d", ch[i]);
}
printf("\n");
system("pause");
return 0;
}追问好的我等着追答OK。两种方法,各有优劣,视情况使用。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
得了肠胃炎可以吃小蛋糕吗
天蝎女要是有对象,会不会和别人发生关系
小侠理发城地址有知道的么?有点事想过去
cf里买了更名卡然后怎么改名?还有仓库里没有
笋能组什么词
tcl智能电视无法安装秦捷apk文件是啥原因,是
打铁还需自身硬 我该怎么办发言材料
大海是什么填空
彩色印刷纸箱厂在哪里啊,我有事要去这个地方
三星s4重装系统要怎么操作
我和合伙人租赁机械设备做工程,由于工程发包
淘宝买的衣服是烂的,发消息不回复,怎么投诉
宫本武藏是怎么死的
学生书桌书很多,很乱,想整齐摆好该怎么摆,又
现场管理是什么意思
推荐资讯
长虹电器(仁和广播电视中心)地址有知道的么?
私房可以用来做民宿吗
猛虎幼儿园在哪里啊,我有事要去这个地方
请问,我的电脑为什么一玩新浪游戏大厅的游戏
想开一个化妆品店。店名想好了。是 “美”有
浅谈人类为什么那么爱玩儿球
iphone怎样用wifi连接itools
电子秤除了半斤皮怎么算
老郑的饼干放在饼干桶里 怎么玩这个游戏,不
电脑是不是就是主机和显示器而已了?
回答我提问列表的的第二个问题
老婆执意要离婚,我该怎么挽回,我该怎么办
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?