c语言编写整数转十六进制
时间: 2024-10-17 13:11:32 浏览: 13
C语言进制转换,十进制转16进制
在C语言中,将整数转换为十六进制字符串通常可以使用标准库函数`itoa()`或者自定义一个转换函数。不过,需要注意的是,`itoa()`函数在C99标准中已被弃用,在某些编译器中可能不可用。下面是一个自定义函数的例子,使用数组作为临时存储转换结果:
```c
#include <stdio.h>
#include <string.h>
// 自定义函数,int转十六进制
void int_to_hex(int num, char hex[]) {
static const char hex_digits[] = "0123456789ABCDEF";
int i = 0;
if (num == 0) {
hex[i++] = '0';
} else {
while (num != 0) {
hex[i++] = hex_digits[num % 16];
num /= 16;
}
}
// 反转字符串,因为最开始存入的是最低位
for (int j = 0; j < i / 2; ++j) {
char temp = hex[j];
hex[j] = hex[i - j] = temp;
}
}
int main() {
int decimal_num = 255;
char hex[10]; // 预计最多16进制数字加上一位前缀
int_to_hex(decimal_num, hex);
printf("十进制数 %d 转换为十六进制是:%s\n", decimal_num, hex);
return 0;
}
```
阅读全文