首页 > 编程知识 正文

c语言十六进制转十进制函数,将十进制转换为十六进制的程序

时间:2023-05-03 17:21:26 阅读:59330 作者:4153

将十六进制转换为十进制的原理介绍了将十六进制转换为十进制。 它首先将十六进制转换为二进制,然后从二进制转换为十进制。

把十六进制转换成二进制很容易。 首先,一位十六进制数字表示四位二进制数字,例如f表示二进制数字1111,a表示二进制数字1010。 利用这种一对一的关系,可以很容易地将十六进制数转换为类似0x1F6C的二进制数。 其中十六进制1对应于二进制0001,十六进制f对应于二进制1111。如果十六进制c对应于二进制1100,则与十六进制0x1F6C对应的二进制为0001111101100。

得到对应的二进制数后,将二进制数转换为十进制数。 这一步更简单。 套用一个公式就可以了。 二进制右边为低位,左边为高位,最右边的第一个数字表示2的0次方,从右向左依次递增。 1、2、3、4…、16位二进制数的最高位为2的16 - 1=15次幂(以0001 1111 0110 1100为例,公式为: f=020212121230212512602718111211110111111 2 ^ 30 *2^ 41 *2^ 51 *2^ 60 *2^7*2^ 81 *2^ 91 *2^ 101 *2^ 112^ 15f=02002112212302412602712912101211111

我们一共用16位数来说明,剩下的位数只要举一反三就行了。 原理是一样的。

有了代码实现方面的知识,就可以轻松地进行代码实现

# include ' stdio.h ' # include ' math.h ' unsignedshortintdecdata _ 16 [4];//用于存储十进制数,数组的大小根据自己的实际情况进行修改------------16十六进制数------------16转换为16位的i 4; I//这里是四个十六进制数,所以只循环四次,根据自己的实际情况进行修改{unsigned short int Hex=temp[i]; 未指定短整型dec=0; for(intj=0; j 16; j )//16表示十六进制数的全部16位,根据自己的实际情况,修改(if ) hex0x0001 ) /,判断与十六进制数对应的二进制数的最后是0还是1,所以将十六进制数转换为二进制数的工作代码已经秘密地) dec pow(2,j )是math.h头文件的库函数,进行幂运算,Hex=1; //这里的移位操作是操作与十六进制对应的二进制数,所以我们不需要变换(}else //如果最后一位不是1 ) dec=0; 0加上hex=1} } dec data _ 16 [ I ]=dec; }到目前为止,我们实现了从十六进制到十进制的转换。 有关十进制到十六进制转换的信息,请参阅实现链接: STM32进制到十六进制转换(有例程)。 Keil5不使用scanf函数,而是用c语言实现的。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。