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

如题所述

第1个回答  2020-04-22
99转换二进制
99/2=49
余数1
49/2=24
余数1
24/2=12
余数0
12/2=6
余数0
6/2=3
余数0
3/2=1
余数1
答案由最后结果连接余数向上排列=1100011
99转换8进制
99/8=12
余数3
12/8=1
余数4
答案=143
99转换16进制
99/16=6
余数3
答案=63
113转换二进制
113/2=56
余数1
56/2=28
余数0
28/2=14
余数0
14/2=7
余数0
7/2=3
余数1
3/2=1
余数1
答案=1110001
113转换八进制
113/8=14
余数1
14/8=1
余数6
答案=161
113转换16进制
113/16=7
余数1
答案=71
这样太累了,下面直接把结果给你写出来吧,算法是一样的
192二进制=11000000
192八进制=300
192十六进制=120
,因为16进制里c代表12,所以答案是c0
324二进制=101000100
324八进制=504
324十六进制=144
没用计算机,全部是自己算的,可以的话就给我分
第2个回答  2019-06-20
选定二进制数的小数部分为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