C++ char转16进制数据
时间: 2024-10-13 16:06:14 浏览: 24
在C++中,你可以使用标准库中的`std::hex`标志符配合`std::uppercase`标志符来将字符转换为16进制表示。下面是一个简单的例子:
```cpp
#include <iostream>
#include <cctype>
// 将字符转换为16进制并打印
void charToHex(char c) {
std::ios_base::fmtflags oldFlags = std::cout.flags(); // 保存原始格式
std::cout << std::hex << std::uppercase; // 设置十六进制和大写
if (std::isprint(c)) { // 只处理打印字符
std::cout << static_cast<int>(c);
} else {
std::cout << "<non-printable>";
}
std::cout.flush(); // 确保立即显示
std::cout << " (" << static_cast<unsigned int>(c) << ")"; // 显示字符的Unicode值
std::cout.flags(oldFlags); // 恢复原始格式
}
int main() {
char ch = 'A'; // 示例字符
charToHex(ch);
return 0;
}
```
在这个示例中,函数`charToHex`接收一个字符,然后将其转换为十六进制,并添加上大写的前缀。如果字符是非打印字符,它会显示 `<non-printable>`。
阅读全文