C++输入一个十进制整数,转换成二进制、8进制数。
时间: 2024-11-05 21:33:08 浏览: 11
在C++中,将十进制整数转换为二进制和八进制,可以使用内置的库函数。下面是简单的方法:
1. **二进制**:可以使用`std::bitset`来进行转换,或者手动通过循环和除法取余的方式实现。
```cpp
#include <bitset>
#include <iostream>
void decimalToBinary(int dec) {
std::bitset<32> binary(dec); // 32位足够容纳64位整数的二进制表示
std::cout << "二进制形式: ";
for (size_t i = 0; i < binary.size(); ++i)
std::cout << binary.test(i) ? '1' : '0'; // 输出每一位
std::cout << '\n';
}
```
2. **八进制**:可以直接使用字符串插值或者利用`std::oct`函数:
```cpp
void decimalToOctal(int dec) {
std::string octal = std::to_string(dec, 8); // 使用8进制基数转换
std::cout << "八进制形式: " << octal << '\n';
}
int main() {
int decimalInput;
std::cout << "请输入一个十进制整数:";
std::cin >> decimalInput;
decimalToBinary(decimalInput);
decimalToOctal(decimalInput);
return 0;
}
```
注意,`std::to_string`对于非打印字符(如0-7之间的数字)可能会出现问题,所以在实际项目中需要处理这种情况。
阅读全文