满意答案
plbaml
2014.01.06
采纳率:40% 等级:12
已帮助:13329人
二进制数转换成十进制数
二进制的1101转化成十进制
1101(2)=1*2^0+0*2^1+1*2^2+1*2^3=1+0+4+8=13
转化成十进制要从右到左用二进制的每个数去乘以2的相应次方
不过次方要从0开始
相反 用十进制的数除以2 每除一下将余数就记在旁边
最后按余数从下向上排列就可得到1101
十进制转二进制:
用2辗转相除至结果为1
将余数和最后的1从下向上倒序写 就是结果
例如
302
302/2 = 151 余0
151/2 = 75 余1
75/2 = 37 余1
37/2 = 18 余1
18/2 = 9 余0
9/2 = 4 余1
4/2 = 2 余0
2/2 = 1 余0
1/2 = 0 余1
故二进制为100101110
二进制转十进制
从最后一位开始算,依次列为第0、1、2...位
第n位的数(0或1)乘以2的n次方
得到的结果相加就是答案
例如:01101011.转十进制:
第0位:1乘2的0次方=1
1乘2的1次方=2
0乘2的2次方=0
1乘2的3次方=8
0乘2的4次方=0
1乘2的5次方=32
1乘2的6次方=64
0乘2的7次方=0
然后:1+2+0 +8+0+32+64+0=107. 二进制01101011=十进制107.
由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。
1. 十进制整数转换为二进制整数
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。 十进制整数转二进制
如:255=(11111111)B
255/2=127=====余1
127/2=63======余1
63/2=31=======余1
31/2=15=======余1
15/2=7========余1
7/2=3=========余1
3/2=1=========余1
1/2=0=========余1
789=1100010101
789/2=394.5 =1 第10位
394/2=197 =0 第9位
197/2=98.5 =1 第8位
98/2=49 =0 第7位
49/2=24.5 =1 第6位
24/2=12 =0 第5位
12/2=6 =0 第4位
6/2=3 =0 第3位
3/2=1.5 =1 第2位
1/2=0.5 =1 第1位
2.十进制小数转换为二进制小数
十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的整数部分为零,或者整数部分为1,此时0或1为二进制的最后一位。或者达到所要求的精度为止。 然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。 十进制小数转二进制 如:0.625=(0.101)B 0.625*2=1.25======取出整数部分1 0.25*2=0.5========取出整数部分0 0.5*2=1==========取出整数部分1 再如:0.7=(0.1 0110 0110...)B 0.7*2=1.4========取出整数部分1 0.4*2=0.8========取出整数部分0 0.8*2=1.6========取出整数部分1 0.6*2=1.2========取出整数部分1 0.2*2=0.4========取出整数部分0 0.4*2=0.8========取出整数部分0 0.8*2=1.6========取出整数部分1 0.6*2=1.2========取出整数部分1 0.2*2=0.4========取出整数部分0 。 。 。
然后十进制转换成其他的进制都是一次类推,大同小异,计算方法都是如此。
然后是二.四、八、十六进制之间的转换了。
二进制转换成四进制就是二位合并为一组,然后换算,
转换成八进制就是三位合并为一组,然后换算,
转换成十六进制就是四位合并为一组,然后换算。
如二进制101011101
转换成四进制 1 01 01 11 01 ..........从后往前,二位为一组,然后换算成四进制就是 11131
转换成八进制 101 011 101 ..........从后往前,三位为一组,然后换算成八进制就是535
转换成十六进制 1 0101 1101...........从后往前,四位为一组,然后换算成十六进制15D
这里要注意,有的时候位数不是恰巧就是刚好,如上面在转化成四进制时。最前面的只有一位,这个时候换算就在前面加上一个0.因为四进制最多只能用两位二进制数表示。在转换成八进制时,刚好分为三组,那就不需要添加0,但是如果从后面往前分组表示时,最前面的位数不够三位,那么就加0,最多加两个0.同理转换成十六进制亦是如此。
一般这么记:X位一组,不够就加0,最多只能加X-1个0.
四进制二位一组,八进制三位一组,十六进制四位一组。
然后是四进制,八进制,十六进制转换成二进制。
这个比较简单。举例
八进制的752转换成二进制。前面说过,八进制时三位表示的,那就是用三位的二进制数,表示每一个八进制的数就行了。
八进制的7对应的二进制数是111
八进制的5对应的二进制数是101
八进制的2对应的二进制数是011
合并,八进制的752转换成二进制数就是111101011
八进制157转换成二进制
八进制的1对应的二进制数是011
八进制的5对应的二进制数是101
八进制的7对应的二进制数是111
合并,八进制的157转换成二进制就是(0)11101111
这里,这最前的是可以省去的。因为在最前的只是为凑够位数的。
下面四进制,八进制,十六进制之间的转换。
这个转换,有两种方法,第一种:先转换成十进制数,再转换。第二种:先转换成二进制数,再转换。一般而言,第二种方法比较简便。那只说第二种方法。
如,将12D十六进制转换成八进制数。
第一步,12D转换成二进制数位0001 0010 1100 即100101100
第二步,把转换的二进制数三位一组,换算成八进制,先分组得:100 101 100再计算得454.
其他的都是如此转换的。如果你还有什么需要的可以与我在联系。
00分享举报