十进制转十六进制的具体方法:

对于整数部分,用被除数反复除以16,除第一次外,每次除以16均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。

对于小数部分,采用连续乘以基数16,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。

10进制数转换成十六进制数,这是一个连续除以16的过程:把要转换的数,除以16,得到商和余数,将商继续除以16,直到商为0。最后将所有余数倒序排列,得到数就是转换结果。

这个题应该有好几种方式,这里列出一种

#include<stdio.h>
int main(){
    char b[17]={"0123456789ABCDEF"};
    int c[64],d,i=0,base=16;
    long n;
    printf("输入一个数;\n");
    scanf("%ld",&n);
    do{c[i]=n%base;i++;n=n/base;} 
    while(n!=0);
    printf("转换成新的数;\n");
    for(--i;i>=0;--i)
    {d=c[i];
    printf("%c",b[d]);
     } 
} 
End
最后修改:2021 年 05 月 12 日
如果觉得我的文章不错,请随手点赞~