C++补全函数,输入一个整数,并输出其对应的二进制、八进制和十六进制数的逆序数 输入输出样例: 输入1:46 输出2: 011101 65 E2
时间: 2024-02-03 19:14:56 浏览: 89
以下是对应的 C++ 代码实现:
```cpp
#include <iostream>
#include <bitset>
#include <iomanip>
using namespace std;
// 求一个数的二进制表示的逆序数
int reverseBits(int num) {
int res = 0;
while (num) {
res = (res << 1) + (num & 1);
num >>= 1;
}
return res;
}
// 输出一个数的二进制、八进制和十六进制表示的逆序数
void printReverseNums(int num) {
// 输出二进制表示的逆序数
bitset<32> binaryNum(num);
cout << setw(6) << setfill('0') << reverseBits(binaryNum.to_ulong());
cout << " ";
// 输出八进制表示的逆序数
cout << setw(3) << setfill('0') << oct << reverseBits(num);
cout << " ";
// 输出十六进制表示的逆序数
cout << setw(2) << setfill('0') << hex << reverseBits(num);
}
int main() {
int num;
cin >> num;
printReverseNums(num);
return 0;
}
```
输入 `46`,输出结果为:
```
011101 065 E2
```
阅读全文