1.编一程序用递归函数,把输入的一个十进制整数转换成二进制数输出


#include

void f(int n)
{
   if(n) f(n/2);
   else return;
   printf("%d",n%2);
}

int main()
{
   int n;
   while(1)
   {
      scanf("%d",&n);
      if(n<0) break;
      if(n==0) printf("0");
      f(n);
      printf("\n");
   }
   return 0;
}


另一种:
#include

void f(unsigned int n)
{
   if (n==0) return;
   f(n>>1);
   putch((n&1)+'0');
}

int main()
{
int n;
scanf("%d",&n);
if(n==0) printf("0");
f((unsigned int)n);
printf("\n");
}


将用户输入字符串转化2进制并输出


第一步:用强制类型转换成int或者long
第二步,这时候有2种方法
①.使用位移操作符“<<”和“>>”,这个就很简单了,
总共要移动的次数 = sizof(int或者long) * 8;
移位的时候做个判断,移出来是‘1’就输出1,否则输出0;
这种方法适合于很大的数字。要注意高位有时候是无意义的0.不用输出
②.根据我们最熟悉的十进制转二进制的原理编程。设强制转换后的数为x;
则循环
do
{
cout << x%2;
x=x/2;
}while(x != 1)
这里不要忘了补一个最后一位
cout<一个完整的二进制就输出完了,不过顺序是倒着的而已。
这个方法适合于相对小的数字



itoa可以转换为二进制的字符串。具体可以看下面的程序:

#include
# includ
void main()
{
char input[255];
char output[255][8];
int i=0;
scanf("%s", input);
for(i=0;i{
itoa(input[i],output[i],2);
printf("%s",output[i]);
}
}


最新日志 随机日志 综合排行
  • 小小的看一下星座——...
  • 写给即将离开的鱼山校...
  • 圣诞老人的传说
  • 开车的~来看看行车安...
  • 让你拥有~好心情
  • 女生百科
  • 生活小贴士,很不错哦...
  • 生活小秘诀~偏方大集...
  • 健康养生之酸奶篇
  • 五分钟轻松做早餐:三...
  • 组图:超级囧图大放送...
  • 我的军训(下)(9....
  • 《小时代1.0折纸时...
  • 向大家介绍一下跆拳道...
  • 向大家介绍一下跆拳道...
  • 小时代》连载16 -...
  • C语言——字符串中的...
  • 刘翔,我们理解你,我...
  • 小时代连载12——郭...
  • 写给我暂时失意的的死...
  • 《战栗的乐谱》中的插...
  • 8月1日的日全食的感...
  • 小时代 连载2 郭敬...
  • 永远的恩雅,永远的天...
  • 写给我暂时失意的的死...
  • 数独——锻炼你的脑细...
  • 2008北京奥运会奖...
  • 小时代1.0折纸时代...
  • 小时代 连载3 郭敬...
  • 某天早晨起来以后的影...
  • Tags: ,
    资料 | 评论(0) | 引用(0) | 阅读(389)
    发表评论
    表情
    emotemotemotemotemot
    emotemotemotemotemot
    emotemotemotemotemot
    emotemotemotemotemot
    emotemotemotemotemot
    打开HTML
    打开UBB
    打开表情
    隐藏
    昵称   密码   游客无需密码
    网址   电邮   [注册]