将十进制数2746.12581转换为二进制数、八进制数、和十六进制数。

如题所述

选定二进制数的小数部分为16位,那么将其乘以65536(2^16)进行整数化。

(2746.12851)10*(2^16)10
=(2746.12851)10*(65536)10
=(179970278.03136)10
取整数部分,
>(179970278)10
=(ABA20E6)16
=(1010 1011 1010 0010 0000 1110 1110)2
因为最初乘了65536,即2的16次方,所以换算成二进制时应右移十六位,
即最终结果等于(101010111010.0010000011101110)2。

PS:为什么要换算成十六进制?一个十六进制数就等于四个二进制位,一次性就计算了四个二进制位的结果,这当然是相对比较有效率的做法。

一个八进制数就等于三个二制位,
所以(101010111010.0010000011101110)2可按每三位进行一次分割,缺的位补零
即:(101 010 111 010.001 000 001 110 111)2=(5272.10167)8

一个十六进制数就等于四个二制位,
所以(1010 1011 1010.0010 0000 1110 1110)2可按每四位进行一次分割,缺的位补零
即:(ABA.20E6)16
温馨提示:答案为网友推荐,仅供参考