LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 829|回复: 10

想写一个小程序,请大家帮忙!

[复制链接]
发表于 2005-4-19 14:05:08 | 显示全部楼层 |阅读模式
在C语言中,如何实现把一个十进制转换成二进制?(我的意思是如何用程序来实现)
发表于 2005-4-19 14:16:48 | 显示全部楼层
如果不在计算机上编程,而是在草稿纸上演算,你是怎么实现的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-19 14:24:06 | 显示全部楼层
你是说要我按草稿纸上演算的方法写程序?
回复 支持 反对

使用道具 举报

发表于 2005-4-19 19:59:40 | 显示全部楼层
不然怎么办??你tell cpu 我要转换啦,然后cpu帮转?
电脑能做任何我们想让它做的时,关键是你要想啊,电脑是死的啊
回复 支持 反对

使用道具 举报

发表于 2005-4-20 09:38:03 | 显示全部楼层
数字在计算机中都是用二进制表示的,只要能把数据输入到计算机中,它自然就是二进制了。
回复 支持 反对

使用道具 举报

发表于 2005-4-20 23:48:48 | 显示全部楼层
如果你是想输出字符串,可以用itoa、ltoa之类的函数,第三个参数是2
回复 支持 反对

使用道具 举报

发表于 2005-4-21 13:50:56 | 显示全部楼层
说错了,itoa不是C标准函数,gcc里没有
回复 支持 反对

使用道具 举报

发表于 2005-4-21 19:15:02 | 显示全部楼层
没有itoa可以用sprintf
回复 支持 反对

使用道具 举报

发表于 2005-4-22 10:53:21 | 显示全部楼层
main()
{
  int a,i;
  char o[32];

  scanf("%d",&a);
  for(i=0;i<32;i++)
    if((a<<i)& 0x80000000)
      o='1';      
    else
      o='0';

  printf("%s",&o);
  
  return(0);
}
我试了一下不用 sprintf 手功转
回复 支持 反对

使用道具 举报

发表于 2005-4-22 20:29:40 | 显示全部楼层
Post by felixsun
main()
{
  int a,i;
  char o[32];

  scanf("%d",&a);
  for(i=0;i<32;i++)
    if((a<<i)& 0x80000000)
      o='1';      
    else
      o='0';

  printf("%s",&o);
  
  return(0);
}
我试了一下不用 sprintf 手功转

算法正确,字符串的结尾没有处理好,代码再改改。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表