用c语言解:输入一个十进制整数,例如15,输出对应的十六进制数
时间: 2024-12-18 22:19:07 浏览: 7
在C语言中,我们可以使用循环和位操作来将十进制数转换成十六进制数。下面是一个简单的程序示例,它会提示用户输入一个十进制数,并将其转换成十六进制:
```c
#include <stdio.h>
#include <string.h>
void decToHex(int num) {
char hex[17]; // 16个字符用于存储十六进制数字(包括前导'0x')
int i = 0;
// 使用ASCII码存储每一位的十六进制字符
while(num > 0) {
hex[i++] = num % 16 + '0';
if(num / 16 != 0) {
hex[i++] = num / 16 + 'A' - 10; // 如果数字大于9,则用'A'-'F'
}
num /= 16;
}
// 由于高位在前,所以需要反转字符串并添加前缀'0x'
hex[i] = '\0'; // 结束符
printf("0x");
for(int j = i - 1; j >= 0; j--) {
printf("%c", hex[j]);
}
}
int main() {
int decimal;
printf("请输入一个十进制整数:");
scanf("%d", &decimal);
decToHex(decimal);
return 0;
}
```
当你运行这个程序并输入15,输出将是 `0x0f`,因为15在十六进制下对应的就是`0f`。
阅读全文