fly6022
文章12
标签26
分类2
数制的转换

数制的转换

介绍三种数制的转换方法。

RR反向取余法

此方法适用于将十进制整数转换为R进制整数.

例如:将十进制数 (1910)(19_{10}) 转换为二进制数.

利用短除法的方法,将19除以2,记录其商和余数,再将得到的商继续除以2,再次记录商和余数,以此类推,直到商的值为0为止.将余数进行逆序排列,即为所求.十进制数 (19)10(19)_{10} 所对应的二进制数是 (10011)2(10011)_2 .

按权展开求和法

按权[1]展开求和法适用于将R进制整数(小数)转换为十进制整数(小数).
假设,我们要将一个二进制整数转换为十进制整数.假设这个二进制整数为 (10011)2(10011)_2 ,则:

(10011)2=1×24+0×23+0×22+1×21+1×20=16+0+0+2+1=(19)10(10011)_2=1\times2^4+0\times2^3+0\times2^2+1\times2^1+1\times2^0=16+0+0+2+1=(19)_{10}

类似地,将一个任意二进制整数( (A)2n(A)_2\, nn=lg(xyz)10+1n=⌊lg(xyz)_{10}+1⌋)转换为十进制整数,那么,有以下通式:

(A)2=2(n1)x+2(n2)y+2(n3)z,n=lg(A)10+1(x,y,z=1),nZ.(A)_2=2^{(n-1)}x+2^{(n-2)}y+2^{(n-3)}z, n=⌊lg(A)_{10}+1⌋(x,y,z=1), n∈Z.

RR取整法

此方法适用于将十进制小数转换为R进制小数.[2]

将十进制小数(0.618)10(0.618)_{10}转换为十六进制小数.

0.618×16=9.888,90.888×16=14.208,14,(E)160.208×16=3.328,30.328×16=5.248,50.248×16=3.968,30.968×16=15.488,15,(F)160.618\times16=9.888,取整数部分9\\ 0.888\times16=14.208,取整数部分14,即(E)_{16}\\ 0.208\times16=3.328,取整数部分3\\ 0.328\times16=5.248,取整数部分5\\ 0.248\times16=3.968,取整数部分3\\ 0.968\times16=15.488,取整数部分15,即(F)_{16}\\ …

0.6180.618 可近似转化为十六进制数 0.9E353F0.9E353F .


  1. 权值:基数的幂,不同数位对应不同权值. ↩︎

  2. 并非所有十进制小数都能完全转化为R进制小数,这时需要取近似值. ↩︎

本文作者:fly6022
本文链接:https://blog.fly6022.fun/posts/%E6%95%B0%E5%88%B6%E7%9A%84%E8%BD%AC%E6%8D%A2/
版权声明:本文采用 署名-非商业性使用-禁止演绎 4.0 国际 (CC BY-NC-ND 4.0) 协议进行许可,转载请注明原出处。
×