发布网友 发布时间:2022-04-21 18:54
共1个回答
热心网友 时间:2022-07-12 05:16
#include <stdio.h>
void changeover( unsigned m ) {
unsigned b = m;
unsigned char i = 0;
char s[] = "01234567ABCDEF";
char num[10],t;
while(b >= 16l) {
num[i++] = s[b % 16l]; // 求出目标进制数的一位
b = b / 16l; // 从原数中去掉上面求出的数
}
if(b > 0) num[i++] = s[b];
num[i] = '\0';
for(b = 0;b < i/2;b++) {
t = num[b];
num[b] = num[i - b - 1];
num[i - b - 1] = t;
}
printf("10进制数%u转换为16进制数是%s【%X】。\n",m,num,m);
}
int main( ) {
unsigned num;
printf("请输入一个正整数 : ");
scanf("%d",&num);
changeover(num);
printf("\n");
return 0;
}