C++ HEX转ASCII 代码
时间: 2024-11-03 07:17:48 浏览: 18
在C++中,你可以使用标准库中的`std::bitset`来实现十六进制到ASCII的转换。下面是一个简单的示例代码:
```cpp
#include <iostream>
#include <string>
#include <bitset>
// 函数用来将十六进制字符串转换为ASCII字符串
std::string hexToASCII(const std::string& hexStr) {
std::string asciiStr = "";
size_t i = 0;
while (i < hexStr.size()) {
// 提取四位十六进制数
std::string fourChars = hexStr.substr(i, 4);
// 转换为二进制并转换为ASCII
std::bitset<8> binaryNum(fourChars, 16); // 16 表示十六进制
char asciiChar = static_cast<char>(binaryNum.to_ulong()); // to_ulong()转换为无符号长整型
asciiStr += asciiChar;
i += 4; // 进入下四个字符
}
return asciiStr;
}
int main() {
std::string hexStr = "48656c6c6f20576f726c64"; // Hello World in hexadecimal
std::string asciiStr = hexToASCII(hexStr);
std::cout << "Hex to ASCII: " << asciiStr << std::endl;
return 0;
}
```
这个程序首先提取输入十六进制字符串的每四个字符,然后将其转换为二进制并映射为ASCII字符。注意,这种方法只适用于ASCII字符范围内的十六进制数值,超出范围的十六进制可能会导致不可预测的结果。
阅读全文