首页 > 用户发贴区 > 编程问题提问区 > 10进制转换为2进制输出程序
2009
03-26

10进制转换为2进制输出程序

今天心情不错!编写了一个32位机的关于10进制转换为2进制输出程序,希望大家多多指点;


#include<iostream.h>
int tow(int n)
{
 unsigned i,j=1;
 for(i=1;i<=n;i++)j=j*2;
 return(j);
}
void main()
{
 unsigned i,a[32]={0};
 int j=0,h=1;
 cout<<”请输入你要转换的10进制数字为:”;
 cin>>i;
 cout<<endl;
 while(h)
 {
  if(i>=tow(31-j)){i=i-tow(31-j);a[31-j]=1;}
  else a[31-j]=0;
  if(i==0){a[0]=0;h=0;}
  if(i==1){a[0]=1;h=0;}
  j++;
 }
 cout<<”最后32位二进制结果为:”;
for(j=0;j<=31;j++)cout<<a[31-j];
cout<<endl;
cin>>j;
}//程序已经运行过了!没问题!谢谢大家支持!


10进制转换为2进制输出程序》有 3 条评论

  1. whos 说:

    可以用数据结构里的栈来写

  2. whos 说:

    给出一个用递归来实现的十进制转换为二进制的程序,存储结构为数组。

    #include “stdio.h”

    #define MAX 32

    int data[MAX];

    int change(int x){
        int i;
        if(x==0)
           return 0;
        i=change(x/2);
        data[i]=x%2;
        return i+1;
    }

    int main(){
        int a,i,j;
        scanf(“%d”,&a);
        i=change(a);
        for(j=0;j<i;j++)
            printf(“%d”,data[j]);
        return 0;
    }

    呵呵……

  3. tqjj1989 说:

    我是新手,能具体解释一下

    int change(int x){
        int i;
        if(x==0)
           return 0;
        i=change(x/2);
        data[i]=x%2;
        return i+1;
    } 吗,谢谢了

留下一个回复