输入一个任意进制的数,转换为其他三种进制。
用C或C++编程实现32位无符号数(或正整数)与十六进制、八进制、二进制之间的转换。如输入任一种进制数,则输出其它三种与之对应的制数。
实现时使用位运算:采用循环移位,将32位整数一位一位从左向右移出并显示
先给你写一个二进制的别着急奥 先采纳
#include <iostream>
using namespace std;
int main()
{
int n;
int a[1005];
int count = 0;
cin>>n;
while(n!= 0)
{
a[count++] = n & 1;
n = n>>1;
}
for (int i = count - 1; i >= 0; i--)
{
cout<<a[i];
}
cout<<endl;
return 0;
}
int main()
{
int n;
int a[1005];
int count = 0;
cin>>n;
int tempn = n, tempc = count;
//十进制转二进制
while(n!= 0)
{
a[count++] = n & 1;//a % b = a & (b-1)相当于n%2
n = n>>1;//右移1位相当于n/2
}
for (int i = count - 1; i >= 0; i--)
{
cout<<a[i];
}
cout<<endl;
n = tempn;
tempc = count;
//十进制转八进制
while(n!= 0)
{
a[count++] = n & 7;//a % b = a & (b-1)相当于n%8
n = n>>3;//右移1位相当于n/8
}
for (int i = count - 1; i >= tempc; i--)
{
cout<<a[i];
}
cout<<endl;
n = tempn;
tempc = count;
//十进制转十六进制
while(n!= 0)
{
a[count++] = n & 15;//a % b = a & (b-1)相当于n%16
n = n>>4;//右移1位相当于n/16
}
for (int i = count - 1; i >= tempc; i--)
{
cout<<a[i];
}
cout<<endl;
return 0;
}