c语言16进制与10进制的转换

c语言16进制与10进制的转换,第1张

这个函数的int HtoD(char a);就是将16进制的数用字符数组保存,把数组首地址作为参数传递给函数,函数返回转换后的10进制整型数值。

详细说明,我写在备注里了,你看以参考。

#include <stdioh>

#include <stringh>

int HtoD(char a)//将16进制的数字用字符串保存,并将字符串首地址作为参数传递

{

    int num=0,i;

    for(i=0; i<strlen(a); i++)//迭代 迭代次数为a数组的长度    形参a是指针,初值是指向字符数组的首地址,也就是指向16进制数字的左边第1位

    {

        //每次迭代 取指针指向的地址值进行判断,同时指针不断往右移动

        if((a+i)>='0'&&(a+i)<='9')//如果当前位是0~9的数字,那么总数值num累加同时前值16(因为左边是高位,从高位往低位数,每多1位高位就16)

            num = num16 + (a+i)-'0';

        else if((a+i)>='A'&&(a+i)<='Z')//如果当前位是大写字母A~Z,转换成10进制数值,再累加

            num = num16 + (a+i)-'A'+10;

        else if((a+i)>='a'&&(a+i)<='z')//如果当前位是小写字母a~z,转换成10进制数值,再累加

            num = num16 + (a+i)-'a'+10;

        else

            return -1;//表示输入错误的数

    }

    return num;

}

int main()

{

    char a[]="1F";

    printf("1F=%d",HtoD(a));  //这里我写了简单的调用,打印结果:1F=31

    return 0;

}

将十六进制数转换为十进制,可以使用下面的公式:

十进制数 = (16^0 第0位数) + (16^1 第1位数) + (16^2 第2位数) + + (16^n 第n位数)

其中,第i位数表示十六进制数的第i位,16^i表示16的i次方

例如,将十六进制数3A7转换为十进制,可以使用下面的公式:

十进制数 = (16^0 7) + (16^1 A) + (16^2 3)

由于A代表十进制数10,所以上面的公式可以简化为:

十进制数 = 7 + 10 16 + 3 256

用计算器计算一下,结果为935。因此,十六进制数3A7对应的十进制数是935。

希望这对你有帮助!

十六进制转换成十进制的具体算法是:

1、首先明白16进制数(从右到左数是第0位,第1位,第2位……)的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方,依次这样排列下去。

2、明白ABCDEF表示的二进制数字分别是10,11,12,13,14,15。

3、十六进制转换成十进制的公式是:要从右到左用二进制的每个数去乘以16的相应次方,然后这些数字相加就是了。

例1:2AF5换算成10进制:

第0位: 5 16^0 = 5

第1位: F 16^1 =1516^1= 240

第2位: A 16^2= 10 16^2=2560

第3位: 2 16^3 = 8192

结果就是:5 16^0 + 15 16^1 + 10 16^2 + 2 16^3 = 10997

例2:CE换算成10进制:

第0位:E16^0=1416^0=14

第1位:C16^1=1216^1=192

结果就是:1416^0+1216^1=206

16进制即逢16进1,每一位上可以是从小到大为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16个大小不同的数。16进制转换即16进制与其他不同进制之间的换算转换。

十六进制转换成十进制在电脑的“计算机-程序员”里面就可以进行相应的设置。

具体 *** 作方法如下:

1、开始菜单里面找到“计算器”;

2、在计算器的“查看”找到“程序员”,点击进入;

3、点击十进制数既可以了。

以上就是关于c语言16进制与10进制的转换全部的内容,包括:c语言16进制与10进制的转换、十六进制怎么转换为十进制、16进制数如何转换成10进制数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9853012.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存