c语言16进制转换为10进制数的函数是什么?

Python019

c语言16进制转换为10进制数的函数是什么?,第1张

1、可以根据16进制转10进制的算法(即各位位码值乘以位权之和)来实现该功能。

2、具体实现方法可以参考如下程序:

#include <stdio.h>

void main()

{

     int he    

     int re=0   // 保存转换为10进制的结果

     int k=16   // 16进制

     int n=1    // 位权

     scanf("%d", &he)  // 接收用户输入的16进制数,不含0x前缀

     while(he != 0)  

     {

         re += (he%10)*n  // 取出各位位码值,并乘以对应的位权值

         he /= 10   // 去掉16进制数的最低位,次低位变为最低位

         n *= k     // 位权乘以16

     }

     printf("%d",re) // 输出转换后的结果

}

C语言实现十六进制转换成十进制如下:

例如将十六进制数字 9FA8C 转换成十进制

9FA8C = 9×164 + 15×163 + 10×162 + 8×161 + 12×160 = 653964(十进制)。

从右往左看,第1位的位权为 160=1,第2位的位权为 161=16,第3位的位权为 162=256,第4位的位权为 163=4096,第5位的位权为 164=65536 …… 第n位的位权就为 16n-1。

将各个位的数字乘以位权,然后再相加,就得到了十进制形式。

十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方。

所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。

再例如:十六进制:EA7 = 14×162 + 10×161 + 7×160 = 3751(十进制)。

扩展资料:

C语言10进制转16进制

把十进制的数不停除以16的余数按从右到左的顺序排起来就是16进制,例如:55/16=0余5例如100 100/16=6余4 6/16余6,所以就是64,再例如1000 1000/16=62余8 62/16=3余12 3/16余3所以结果是3C8 //。

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

对于小数部分,采用连续乘以基数2,并依次取出的整数部分,直至结果的小数部分为0为止。

参考资料来源:百度百科-十六进制至十进制转换-十六进制--->十进制