C++16进制转字符串
时间: 2023-07-04 08:30:52 浏览: 173
可以使用C++中的stringstream和iomanip库来实现16进制转字符串的操作。下面是一个示例代码:
```C++
#include <iostream>
#include <sstream>
#include <iomanip>
using namespace std;
int main() {
string hex_str = "48656c6c6f20576f726c6421"; // 16进制字符串
stringstream ss;
for (int i = 0; i < hex_str.length(); i += 2) {
string byte_str = hex_str.substr(i, 2); // 取出每个字节的字符串表示
char byte = (char) strtol(byte_str.c_str(), NULL, 16); // 将字符串转为整数
ss << byte; // 写入到stringstream对象中
}
string str = ss.str(); // 从stringstream对象中取出转换后的字符串
cout << str << endl; // 输出字符串
return 0;
}
```
输出结果为:
```
Hello World!
```
相关问题
c++ 16进制转字符串
可以使用Python中的内置函数chr()和int(),将16进制转换为整数,然后再将整数转换为字符。下面是一个Python示例代码:
```
hex_str = "616263"
byte_str = bytes.fromhex(hex_str)
str = byte_str.decode('utf-8')
print(str)
```
输出结果为:
```
"abc"
```
C++ 16进制转字符串
以下是C++中将十六进制数转化为字符串数据的方法:
1.使用sprintf函数将十六进制数转化为字符串:
```c++
#include <cstdio>
#include <cstring>
int main() {
int num = 0x1234;
char str[10];
sprintf(str, "%X", num);
printf("%s\n", str); // 输出:1234
return 0;
}
```
2.使用stringstream将十六进制数转化为字符串:
```c++
#include <iostream>
#include <sstream>
#include <iomanip>
int main() {
int num = 0x1234;
std::stringstream ss;
ss << std::hex << num;
std::string str = ss.str();
std::cout << str << std::endl; // 输出:1234
return 0;
}
```
3.使用bitset将十六进制数转化为字符串:
```c++
#include <iostream>
#include <bitset>
int main() {
int num = 0x1234;
std::bitset<16> bs(num);
std::string str = bs.to_string();
std::cout << str << std::endl; // 输出:0001001000110100
return 0;
}
```
阅读全文