写一个hexdump C程序,用来将数组转为16进制字符串
时间: 2024-03-12 20:45:01 浏览: 64
C#字节数组转16进制字符串
4星 · 用户满意度95%
好的,以下是一个简单的hexdump C程序,它将一个数组转换为16进制字符串:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void hexdump(const void* data, size_t size) {
char ascii[17];
size_t i, j;
ascii[16] = '\0';
for (i = 0; i < size; ++i) {
printf("%02X ", ((unsigned char*)data)[i]);
if (((unsigned char*)data)[i] >= ' ' && ((unsigned char*)data)[i] <= '~') {
ascii[i % 16] = ((unsigned char*)data)[i];
} else {
ascii[i % 16] = '.';
}
if ((i+1) % 8 == 0 || i+1 == size) {
printf(" ");
if ((i+1) % 16 == 0) {
printf("| %s \n", ascii);
} else if (i+1 == size) {
ascii[(i+1) % 16] = '\0';
if ((i+1) % 16 <= 8) {
printf(" ");
}
for (j = (i+1) % 16; j < 16; ++j) {
printf(" ");
}
printf("| %s \n", ascii);
}
}
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
size_t arr_size = sizeof(arr);
hexdump(arr, arr_size);
return 0;
}
```
这个程序将数组 `arr` 转换为16进制字符串,并将其打印到控制台上。您可以将 `arr` 替换为您自己的数组。
阅读全文