c++进制转换源代码
时间: 2024-10-13 13:01:43 浏览: 7
在C++中,你可以使用标准库提供的函数来进行进制转换。以下是一些基本的示例:
1. **整数转十进制** (通常不需要手动实现,因为`std::stoi`或`atoi`等函数已经内置了处理字符串到整数的转换):
```cpp
#include <string>
int decimal_from_other(int value, int base) {
std::string str = to_string(value, base); // 使用 stoi 或其他方法将数值转换为字符串
return std::stoi(str);
}
// 示例:
int binary_value = 1010;
int decimal_value = decimal_from_other(binary_value, 2);
```
2. **十六进制转换** 到十进制可以用`std::hex`和`std::stoul`或`std::stoi`结合:
```cpp
#include <iostream>
#include <sstream>
int hex_to_decimal(const std::string& hex_str) {
std::istringstream iss(hex_str);
long long result;
iss >> std::hex >> result; // 将十六进制字符串转换为long long
return result;
}
// 示例:
std::string hex_value = "A1";
int decimal_hex_value = hex_to_decimal(hex_value);
```
3. **十进制转其他进制** 可以自定义实现,例如八进制:
```cpp
std::string dec_to_octal(int decimal_value) {
std::ostringstream oss;
oss << std::oct << decimal_value; // 使用std::oct前缀表示八进制
return oss.str();
}
```
阅读全文