十进制转十六进制:
#include <stdio.h>
int main() {
int dec, quo, rem;
char hex[100];
int i = 0, j;
printf("请输入一个十进制数:");
scanf("%d", &dec);
quo = dec;
while (quo != 0) {
rem = quo % 16;
if (rem < 10)
hex[i ] = rem '0';
else
hex[i ] = rem 'A' - 10;
quo = quo / 16;
}
printf("该数的十六进制数为:");
for (j = i - 1; j >= 0; j--)
printf("%c", hex[j]);
return 0;
}
程序首先通过 scanf 函数从用户输入中获取一个十进制数,并将其存储在 dec 变量中。
然后,程序使用一个 while 循环来将十进制数转换为十六进制数。在每次循环中,程序将十进制数除以 16,并将商和余数分别存储在 quo 和 rem 变量中。如果余数小于 10,则将其转换为对应的字符('0' 到 '9'),否则将其转换为对应的字符('A' 到 'F')。将转换后的字符存储在 hex 数组中,并将数组下标 i 加 1。最后,将 quo 更新为商,以便继续下一轮循环。
最后,程序使用一个 for 循环来逆序输出 hex 数组中的字符,以得到最终的十六进制数。
程序中的变量名都比较简短,dec 代表十进制数,quo 代表商,rem 代表余数,hex 代表十六进制数。