首页 理论教育 单片机嵌入式系统实践:数制转换

单片机嵌入式系统实践:数制转换

时间:2023-11-19 理论教育 版权反馈
【摘要】:不同数制之间进行转换应遵循转换相等的原则。001111101100.00011010结果为:2=164.十六进制数转换成二进制数十六进制数转换成二进制数的转换原则是“一位拆四位”,即把1位十六进制数写成对应的4位二进制数,然后按顺序连接即可。

单片机嵌入式系统实践:数制转换

在处理各种数时,经常要在各种数制间进行转换,以此进行数据格式的统一。不同数制之间进行转换应遵循转换相等的原则。常见的转换类型如下。

1.进制数转换成十进制

将二进制数转换成十进制数,只要将二进制数用计数制通用形式表示出来,计算出结果,便得到相应的十进制数。

例:(1101100.111)2=1×26+1×25+1×23+1×22+1×2−1+1×2−2+1×2−3

=64+32+8+4+0.5+0.25+0.125

=(108.875)10

2.十进制数转换为二进制数

(1)整数部分的转换

整数部分的转换采用的是长除法。其转换原则是:将该十进制数除以2,得到一个商和余数(K0),再将商除以2,又得到一个新商和余数(K1),如此反复,得到的商是0时得到余数(Kn−1),然后将所得到的各位余数,以最后余数为最高位,最初余数为最低位依次排列,即Kn−1Kn−2…K1K0,这就是该十进制数对应的二进制数,这种方法又称为“倒序法”。

例:将(126)10转换成二进制数。

结果为:(126)10=(1111110)2

(2)小数部分的转换

小数部分的转换采用乘2取整法。其转换原则是:将十进制数的小数乘以2,取乘积中的整数部分作为相应二进制数小数点后最高位K−1,反复乘2,逐次得到K−2,K−3,…,K−m,直到乘积的小数部分为0或1的位数达到精确度要求为止。然后把每次乘积的整数部分由上而下依次排列起来(K−1K−2…K−m),即是所求的二进制数,这种方法又称为“顺序法”。

例:将十进制数(0.534)10转换成相应的二进制数。

结果为:(0.534)10=(0.10001)2

例:将(50.25)10转换成二进制数。

分析:对于这种既有整数又有小数部分的十进制数,可将其整数和小数分别转换成二进制数,然后再把两者连接起来即可。(www.xing528.com)

因为(50)10=(110010)2,(0.25)10=(0.01)2

所以(50.25)10=(110010.01)2

3.二进制数转换成十六进制

二进制数转换成十六进制数的转换原则是“四位并一位”,即以小数点为界,整数部分从右向左每4位为一组,若最后一组不足4位,则在最高位前面添0补足4位,然后从左边第一组起,将每组中的二进制数按权数相加得到对应的十六进制数,并依次写出即可;小数部分从左向右每4位为一组,最后一组不足4位时,尾部用0补足4位,然后按顺序写出每组二进制数对应的十六进制数。

例:将(1111101100.0001101)2转换成十六进制数。

001111101100.00011010

结果为:(1111101100.0001101)2=(3EC.1A)16

4.十六进制数转换成二进制数

十六进制数转换成二进制数的转换原则是“一位拆四位”,即把1位十六进制数写成对应的4位二进制数,然后按顺序连接即可。

例:将(C41.BA7)16转换为二进制数。

5.十六进制数转换为十进制数

十六进制数→十进制数:以16为基数按权展开并相加。

例:将(19BC.8)16转换成十进制数。

解:(19BC.8)16=1×163+9×162+B×161+C×160+8×16−1

=4096+2304+176+12+0.5

=(6588.5)10

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈