c++里面,printf 如何输出16进制数组
时间: 2024-10-21 11:10:44 浏览: 36
以C方式格式化16进制数组
在 C++ 中,`printf` 函数通常用于输出基本数据类型和字符串,如果想输出 16 进制表示的数组,你需要稍微做点转换。你可以遍历数组元素,将其转换成对应的 `unsigned char` 或 `uint8_t` 类型,并使用 `%hhx` 格式说明符来输出16进制值。
下面是一个简单的示例:
```cpp
#include <iostream>
#include <iomanip>
int main() {
// 假设有一个 uint8_t 数组
uint8_t hexArray[] = {0xFF, 0x1A, 0x4D, 0x00};
for (size_t i = 0; i < sizeof(hexArray); ++i) {
std::cout << std::hex << static_cast<unsigned>(hexArray[i]) << " ";
}
// 如果你想在每四个字节后换行
if (sizeof(hexArray) % 4 == 0)
std::cout << "\n";
else
std::cout << std::endl;
return 0;
}
```
在这个例子中,`std::hex` 转义序列开启16进制模式,`static_cast<unsigned>(hexArray[i])` 将 `uint8_t` 类型转换为无符号整数以便打印。结果会是类似这样的输出:
```
ff 1a 4d 00
```
阅读全文