51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

C语言编写程序把输入的十进制长整数型数以十六进制的形式输出

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

对于整数部分,用被除数反复除以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]);
     } 
} 
赞(2)
未经允许不得转载:工具盒子 » C语言编写程序把输入的十进制长整数型数以十六进制的形式输出