写一个C语言的10进制int型转为16进制的程序
时间: 2024-09-06 21:00:56 浏览: 57
在C语言中,你可以使用标准库函数`itoa()`或者手动实现转换算法来将10进制整数转换成16进制。这里提供一种简单的手动实现方法,使用位操作和数组来保存中间结果。
```c
#include <stdio.h>
#include <string.h>
void int_to_hexadecimal(int num, char hex[20]) {
if (num == 0) {
strcpy(hex, "0");
} else {
static const char* hex_digits = "0123456789ABCDEF";
int i = 19;
do {
hex[i--] = hex_digits[num % 16];
num /= 16;
} while (num != 0);
if (hex[19] == '0' && i > 0) // 如果开头是0,则去掉
hex[1] = '\0';
else
hex[19] = '\0'; // 添加字符串结束符
}
}
int main() {
int decimal_num = 12345;
char hex_num[20];
int_to_hexadecimal(decimal_num, hex_num);
printf("Decimal number: %d\n", decimal_num);
printf("Hexadecimal: %s\n", hex_num);
return 0;
}
```
在这个程序中,`int_to_hexadecimal`函数接收一个十进制数和一个字符数组作为输入,然后通过循环和位操作将其转换为十六进制形式并存储在`hex_num`数组中。`main`函数中展示了如何使用这个函数。
阅读全文