注册 登录
编程论坛 C++教室

新手求助(关于一个使用位运算将十进制转化成二进制的问题)

lisanhu1 发布于 2011-03-19 03:23, 1102 次点击
程序代码:
#include <iostream>
using namespace std;
void decimalToBinary(int n);
int main (int argc, char const* argv[])
{
    int n=0;
    cin>>n;
    decimalToBinary(n);
    cout<<endl;
    return 0;
}
void decimalToBinary(int n)
{
    switch(n)
    {
        case 0:cout<<0;break;
        case 1:cout<<1;break;
        default:cout<<n%2;n=n>>1;decimalToBinary(n);break;
    }
}

我想做一个将十进制转化成二进制的程序,想了这样一个算法,主要是想用位运算符,现在的问题是输出的结果是倒的,有什么好的办法能让它正过来吗

[ 本帖最后由 lisanhu1 于 2011-3-19 04:23 编辑 ]
2 回复
#2
lucky5635912011-03-19 08:50
在转换函数中不要输出,而是将数存储在数组中,然后再倒序输出数组。
#3
玩出来的代码2011-03-19 11:15
程序代码:

if(n/2)
    decimalToBinary(n/2);
cout<<n%2;
1