用C++将十进制数转换为八进制数
时间: 2024-10-29 17:16:36 浏览: 143
在C++中,你可以使用内置的库函数`std::bitset`或者手动编写循环来进行十进制转八进制。这里提供两个简单的示例:
1. 使用`std::bitset`和`std::stoll`(字符串转长整型):
```cpp
#include <bitset>
#include <string>
std::string decimalToOctal(int decimal) {
std::bitset<32> octet(decimal); // 32位足够容纳大部分8进制表示
return octet.to_string();
}
int main() {
int decimal_num = 123;
std::string octal_num = decimalToOctal(decimal_num);
std::cout << "Decimal: " << decimal_num << ", Octal: " << octal_num << std::endl;
return 0;
}
```
2. 手动计算:
```cpp
#include <iostream>
std::string decimalToOctal(int decimal) {
std::string result = "";
while (decimal > 0) {
result.insert(0, static_cast<char>((decimal % 8) + '0')); // 从低位开始添加
decimal /= 8;
}
return result.empty() ? "0" : result; // 如果结果为空,返回0
}
int main() {
int decimal_num = 123;
std::string octal_num = decimalToOctal(decimal_num);
std::cout << "Decimal: " << decimal_num << ", Octal: " << octal_num << std::endl;
return 0;
}
```
这两个例子都会输出类似 "Decimal: 123, Octal: 173" 的结果。
阅读全文