| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 825 人关注过本帖
标题:十进制变换二进制
只看楼主 加入收藏
zhumingyuan
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-1-10
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:6 
十进制变换二进制
#include<iostream>
#include<cmath>
using namespace std;
int huan(int,int);
int main()
{
  int n;
  cin >> n;
  while(n--)
  {
    int a;
    cin >> a;
    a++;
    int sum=0;
    cout << huan(a,sum) << endl;
  }
  return 0;
}
int huan(int m,int sum)
{

  if(m==0) return sum;


    for(int i=0;i<33;i++)
    {
     if(m<=pow(2,i))
     {
      m=m-pow(2,i-1);
      sum+=pow(10,i-1);
      huan(m,sum);
      break;
     }
    }
  }

怎样把内存变小点?
搜索更多相关主题的帖子: 二进制 十进制 
2011-02-20 21:06
lucky563591
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:765
专家分:2103
注 册:2009-11-18
收藏
得分:10 
太复杂了,我有更简便的算法
2011-02-21 07:49
zhumingyuan
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2011-1-10
收藏
得分:0 
能否借鉴一下 ?  谢谢了!
2011-02-21 11:05
闭眼到天黑
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2011-2-20
收藏
得分:0 
程序代码:
#include<iostream>
#include<vector>
using namespace std;
int change(const int &a,const int &b)
{   
    static int d=1;
    int e,g;
    e=a;
    g=b;

    if(g<=1||g>16)
    {
        cout<<"请确认您所输入的数字是否正确!\n"<<endl;
    }
    else
    {
    vector<int> vec;
    do
    {
        vec.push_back(e%g);
        e=e/g;
    }
    while(e!=0);

    cout<<"converted number:"<<endl;

    for(int j=vec.size()-1;j>=0;--j)
    {
        switch(vec[j])
        {
        case 10:
            cout<<'A';
            break;
        case 11:
            cout<<'B';
            break;
        case 12:
            cout<<'C';
            break;
        case 13:
            cout<<'D';
            break;
        case 14:
            cout<<'E';
            break;
        case 15:
            cout<<'F';
            break;
        default:
            cout<<vec[j];
        }
    }
    cout<<"\n程序运行次数:\n"<<d++<<endl;
    }
    return 0;
}
int main()
{
    int a,b;
    for(;;)
    {
    cout<<"请输入您想转换的数:\n";
    cin>>a;
    cout<<"请输入您想转换的进制(大于1小于等于16):\n";
    cin>>b;
    change(a,b);
    }
    return 0;
}
我写的1到16之间任意进制的转换程序,你看一下!以前写的时候错了一点,现在好了!

[ 本帖最后由 闭眼到天黑 于 2011-3-2 13:23 编辑 ]

淫荡成就梦想,猥琐引领时尚!
2011-02-23 12:47
florajun
Rank: 2
等 级:论坛游民
帖 子:7
专家分:10
注 册:2011-2-22
收藏
得分:0 
回复 4楼 闭眼到天黑
你好,这个程序好像实现不了任意进制的转换吧 !
2011-02-23 13:11
yu605
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-2-23
收藏
得分:0 
确实不能任意进制转换,只能指定转换的制位
2011-02-23 21:55
闭眼到天黑
Rank: 2
等 级:论坛游民
帖 子:37
专家分:15
注 册:2011-2-20
收藏
得分:0 
回复 5楼 florajun
这是一个转换进制的算法而已!

淫荡成就梦想,猥琐引领时尚!
2011-03-02 13:24
快速回复:十进制变换二进制
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033966 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved