我给你介绍一种不是官方的方法:拆分法
十进制389换二进制
389=256+128+4+1
所以 389(D)=1 1000 0101(B)
.375=.25+.125
所以.375(D)=.011
合起来 389.375(D)=1 1000 0101.011(B)
转化八进制十六进制 用短除法
整数部分 短除取余数 倒排
小数部分 短乘取整数 正排
十进制转换八进制
8 | 389
8 |48 余5
8|6 余0
所以 389(D)=605(O)
0.375
* 8
= 0.0 取整数 3
所以 0.375(D)=0.3(O)
合起来 389.375(D)= 605.3 (O)
如果有点基础的话看下面,没有的话还是找资料好好学吧。可以参考http://wenku.baidu.com/view/725fc100b52acfc789ebc99c.html
先说转化为二进制吧。分整数部分和小数部分
389/2=194.....1
194/2=97......0
97/2=48.......1
48/2=24.......0
24/2=12.......0
12/2=6........0
6/2=3.........0
3/2=1.........1
1/2=0.........1
从下面往上写就是110000101,再说小数部分
0.375*2=0.75....0
0.75*2=1.5......1
0.5(1.5-1)*2=1..1
(1-1)=0,结束
这次从上面往下写.011
在把二进制数转换为八进制表示形式时,对每三位二进制位进行分组,应该从小数点所在位置分别向左向右划分,若整数部分倍数不是3的倍数,可以在最高位前面补若干个0;对小数部分,当其位数不是的倍数时,在最低位后补若干个0.然后从左到右把每组的八进制码依次写出,即得转换结果.
(110)(000)(101).(011)正好都不用补0,所以为605.3
二进制转十六进制同上每四位一组而已。
('000'1)(1000)(0101).(011'0')即185.6
(2) 110000101.011
(8) 605.3
(16) 185.6