C++如何将一个数转八进制
时间: 2024-10-23 11:12:31 浏览: 13
在C++中,你可以使用`std::stringstream`或者直接利用内建的`std::bitset`类以及`std::hex`和`std::dec`转换标志来将十进制数转换为八进制。这里介绍两种方法:
**方法一:使用stringstream**
```cpp
#include <sstream>
#include <string>
std::string decToOct(int decimalNum) {
std::stringstream ss;
ss << std::oct << decimalNum;
return ss.str();
}
int main() {
int decimal = 45;
std::string octal = decToOct(decimal);
std::cout << "十进制 " << decimal << " 转换为八进制是: " << octal << std::endl;
return 0;
}
```
这段代码首先创建了一个`stringstream`,然后使用`std::oct`标志将十进制数转换为八进制,并读取到字符串中。
**方法二:使用std::bitset和std::dec/hex**
```cpp
#include <bitset>
#include <iostream>
std::string decToOct(int decimalNum) {
std::bitset<8> binary(decimalNum); // 将十进制转换为二进制
std::string octal = binary.to_string(); // 再从二进制转换为八进制
return octal;
}
int main() {
int decimal = 45;
std::string octal = decToOct(decimal);
std::cout << "十进制 " << decimal << " 转换为八进制是: " << octal << std::endl;
return 0;
}
```
这里先将十进制转换为二进制,再通过`to_string()`函数将其转换为字符串形式的八进制。
阅读全文