C++中,用位运算完成进制之间的转换,求源码

2025-04-17 12:33:40
推荐回答(1个)
回答1:

#include 
using namespace std;

int main()
{
    //转二进制
    int n, a = 0;
    cin >> n;
    while (n)
    {
        a = n & 1;
        n = n >> 1;
        cout << a;
    }
    
    //转八进制
    while (n)
    {
        a = n & 7;
        n = n >> 3;
        cout << a;
    }
    
    //转十六进制
    while (n)
    {
        a = n & 15;
        n = n >> 4;
        if (a < 10) cout << a;
        else cout << 'A' + (a % 10);
    }
    
    return 0;
}

另外,输出的时候应该是反过来输出才对。至于如何反过来输出,你自己考虑。我只提供一个思路给你。