把十进制的0.456分别化为相等的二进制八进制十六进制写出演示过程。保留...
发布网友
发布时间:2024-03-02 15:40
我来回答
共1个回答
热心网友
时间:2024-04-04 16:21
只要化出二进制的,其他都好解决。
整数二进制转化十进制的原理你应该知道,举个例子:
110101(2)=2^0+2^2+2^4+2^5=1+4+16+32=53
↑ ↑ ↑ ↑
54 2 0 这是2的幂指数
而十进制转为二进制的方法我们通常把数整除2求余,直到整数为0为止,然后反过来写。
还是上面的这个例子:53(10)→?(2)
51\2=26……1 (注意除号,这是整除符号)
26\2=13……0
13\2=6……1
6\2=3……0
3\2=1……1
1\2=0……1
所以,53化为二进制就是从下往上写的余数110101(2)
同理,小数的也这样,只不过是从2的负数次幂开始,也举个例子:
11.1001(2)=2^1+2^0+2^(-1)+2^(-4)=2+1+0.5+0.0625=3.5625=57/16
↑ ↑ ↑ ↑
10 -1 -4
至于反过来怎么算,因为大多数小数是不能完全写成有限位数的二进制数,所以一般不考虑,如果真的要算,你可以用之前整数的方法去凑,但是可能工作量会比较大。我就以0.456算给你看下好了:
0.456小于0.5,所以2的-1次幂的上为0
0.456大于0.25,所以2的-2次幂上为1,同时原数变成0.456-0.25=0.206
0.206大于0.125,所以2的-3次幂上为1,数变成0.081
0.081大于0.0625,所以2的-4次幂上为1,数变成0.0185
0.0185小于0.03125,所以2的-5次幂上为0
0.0185大于0.015625,所以2的-6次幂上为1,数变成0.002875
按理来说应该是可以了,因为你要求6为小数,但实际上还需要再算2位,因为求有16进制的,
0.002875小于0.0078125,所以2的-7次幂为0
0.002875小于0.00390625,所以2的-8次幂为0
最后整合,注意这个时候要从上往下写,原因其实你可以思考下,就是其实就是个按照次幂的顺序排列而已,整数因为幂是从大到小的,而小数就是从小到大的,而我们书写的顺序肯定是从左向右。
0.456(10)≈0.01110100(2)
保留6位小数0.011101(2)
至于转化为8进制,其实很简单,二进制3位一算,011转化八进制是3,而101则是5。
0.011 101(2)=0.35(8)
转化为16进制就是4位一算,所以要用到8位小数,0111转化16进制是7,而0100则是4。
0.0111 0100(2)=0.74(16)
综上:0.456(10)=0.011101(2)=0.35(8)=0.74(16)
题目其实没什么意义,关键是要知道原理就行了,如果整数部分2进制转化还是不怎么懂的话可以看看我以前回答过的一个题目,这个讲的清楚些。
http://zhidao.baidu.com/question/247350414?&oldq=1