c语言 整数变成 hex 格式 数组串 比如 12345678 转换成 0x12 0x34 0x56 0x78
时间: 2024-10-01 22:07:13 浏览: 10
在C语言中,将整数转换为十六进制数组字符串(如0x12、0x34等)可以利用`printf`函数结合占位符`%x`来完成。下面是一个函数的例子,它会接收一个整数并将其每位的十六进制形式存储到字符数组中:
```c
#include <stdio.h>
#include <string.h>
void intToHex(char hexStr[], int value) {
char* result = "0x";
while (value != 0) {
int remainder = value % 16;
if (remainder < 10) {
hexStr[strlen(hexStr)] = '0' + remainder; // 十进制转字符
} else {
hexStr[strlen(hexStr)] = 'A' + remainder - 10; // A~F转字符
}
value /= 16;
hexStr++;
}
hexStr[strlen(hexStr) - 1] = '\0'; // 添加结束符
printf("Result: %s\n", result);
}
int main() {
int number = 12345678;
char hexArray[10]; // 最大只能容纳8位十六进制数加前缀'0x'
intToHex(hexArray, number);
return 0;
}
```
注意,这里假设`hexArray`最多能存放8位十六进制数(包括前缀'0x'),所以你需要根据实际情况调整数组长度。