21xrx.com
2025-04-19 16:52:21 Saturday
文章检索 我的文章 写文章
如何用C++打印char数组的16进制表示?
2023-06-23 03:39:07 深夜i     97     0
C++ 打印 char数组 16进制表示

在C++中,char类型的变量是一个字符,但它的ASCII码或Unicode码可以用16进制表示。因此,打印char数组的16进制表示可以通过以下方法实现:

1. 使用for循环对数组进行遍历,依次输出每个字符的16进制表示。

例如:

char arr[] = {'H', 'e', 'l', 'l', 'o', '!', '\0'};
for(int i=0; i<sizeof(arr); i++){
  printf("%02X ", arr[i]); //%X表示以十六进制格式输出,%02X表示不足两位前面补0
}

输出结果为:`48 65 6C 6C 6F 21 00`

2. 使用iomanip库的setfill()和setw()函数设置输出格式,以确保每个字符占用相同的宽度并在不足时用0填充。

例如:

#include <iostream>
#include <iomanip>
using namespace std;
char arr[] = {'H', 'e', 'l', 'l', 'o', '!', '\0'};
for(int i=0; i<sizeof(arr); i++){
  cout << setfill('0') << setw(2) << hex << (int)arr[i] << " ";
  //setfill('0')表示使用0填充不足的位数,setw(2)表示每个字符输出两位,hex表示输出十六进制
}

输出结果与上述相同:`48 65 6c 6c 6f 21 00`

通过以上方法,可以轻松地打印char数组的16进制表示,适用于需要处理二进制数据的场景,如网络编程、加密解密等。

  
  

评论区

请求出错了