如何使用C语言(C++)将任意给定的正整数N转换为对应的二进制、八进制和十六进制表示?
时间: 2024-10-25 18:10:33 浏览: 16
在C语言(或C++)中,你可以通过标准库函数`itoa()`、`octoal()`和`hex()`来将十进制整数转换成其他进制字符串。然而,`itoa()`函数在C++11之后已不再直接可用,你需要使用第三方库或者手动编写转换代码。以下是使用`std::stringstream`实现的基本示例:
```cpp
#include <iostream>
#include <sstream>
// 将十进制转二进制
void decToBinary(int num) {
std::stringstream ss;
ss << std::bitset<8>(num); // 使用bitset显示最多8位二进制
std::string binary = ss.str();
std::cout << "Binary: " << binary << std::endl;
}
// 将十进制转八进制
void decToOctal(int num) {
std::stringstream ss;
ss << oct << num; // 使用oct前缀转换为八进制
std::string octal = ss.str();
std::cout << "Octal: " << octal << std::endl;
}
// 将十进制转十六进制
void decToHex(int num) {
std::stringstream ss;
ss << std::hex << num; // 使用hex前缀转换为十六进制
std::string hex = ss.str();
std::cout << "Hexadecimal: " << hex << std::endl;
}
int main() {
int N;
std::cin >> N;
decToBinary(N);
decToOctal(N);
decToHex(N);
return 0;
}
```
阅读全文