c++ 16进制转10进制
时间: 2024-11-04 18:08:21 浏览: 13
c++16进制string转10进制string(非用数值型中间变量转换,无溢出问题)
5星 · 资源好评率100%
在C++中,将十六进制转换为十进制可以使用`std::stoi`函数或者手动计算每个十六进制位对应的值。如果你有一个十六进制字符串,可以这样做:
```cpp
#include <string>
#include <iostream>
int hex_to_decimal(std::string hex_string) {
int decimal = 0;
for (size_t i = 0; i < hex_string.length(); ++i) {
char digit = tolower(hex_string[i]); // 转小写处理大小写差异
if ('0' <= digit && digit <= '9') { // 从0到9的十六进制数字
decimal += digit - '0' * std::pow(16, hex_string.length() - 1 - i);
} else if ('a' <= digit && digit <= 'f') { // 从A到F的十六进制字符
decimal += digit - 'a' + 10 * std::pow(16, hex_string.length() - 1 - i);
}
}
return decimal;
}
int main() {
std::string hex = "ff"; // 例如一个十六进制数
int decimal_value = hex_to_decimal(hex);
std::cout << "Hexadecimal " << hex << " is equal to decimal " << decimal_value << "." << std::endl;
return 0;
}
阅读全文