10进制数123转换为16进制数用C语言怎么写
时间: 2024-10-22 21:24:31 浏览: 40
在C语言中,你可以使用标准库函数`itoa()`或手动编写算法将十进制数转换为十六进制数。这里是一个简单的示例,展示如何手动实现该过程:
```c
#include <stdio.h>
#include <string.h>
// 将十进制整数转换为十六进制字符串函数
void dec_to_hex(int num, char hex[]) {
static char digits[16] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
int i = 0;
// 如果数字为0,则直接添加'0'
if (num == 0) {
hex[i++] = '0';
} else {
// 反复除以16并取余,直到商为0
while (num != 0) {
hex[i++] = digits[num % 16];
num /= 16;
}
// 如果最高位是前导零,需要倒序并添加'0x'
if (hex[0] == '0') {
hex = hex + 1;
}
hex[i] = '\0'; // 结束字符串
}
// 输出结果
printf("10进制数%d转换为16进制为:%s\n", num, hex);
}
int main() {
int decimal_num = 123;
char hex_buffer[20]; // 略大一点的空间以容纳可能的前导零
dec_to_hex(decimal_num, hex_buffer);
return 0;
}
```
运行这个程序会输出 `10进制数123转换为16进制为:0x7B`。
阅读全文