十进制与二进制转换之相互算法
十进制转二进制:
用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
故二进制为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.
参考资料:
http://hi.baidu.com/scfan/blog/item/b280e9c4e1cdeda98326ac46.html
关于十六进制:
16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这五个字母来分别表示10,11,12,13,14,15。字母不区分大小写。
十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……
所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。
假设有一个十六进数 2AF5, 那么如何换算成10进制呢?
用竖式计算:
2AF5换算成10进制:
第0位: 5 * 160 = 5
第1位: F * 161 = 240
第2位: A * 162 = 2560
第3位: 2 * 163 = 8192 +
-------------------------------------
10997
直接计算就是:
5 * 160 + F * 161 + A * 162 + 2 * 163 = 10997
(别忘了,在上面的计算中,A表示10,而F表示15)
现在可以看出,所有进制换算成10进制,关键在于各自的权值不同。
假设有人问你,十进数 1234 为什么是 一千二百三十四?你尽可以给他这么一个算式:
1234 = 1 * 103 + 2 * 102 + 3 * 101 + 4 * 100
参考资料http://hi.baidu.com/jantouy/blog/item/d6ecb0ee9417872b2df534a7.html
234.6D=1111010.0.1001……B=7A.9……H
234.6D=1111010B
234/2 = 117 ....0
117/2 = 58....1
58/2 = 29....0
29/2 = 7....1
7/2 = 3....1
3/2 = 1....1
B:二进制 Q:八进制 D:十进制 H:十六进制
常见进制的换算:
二进制 八进制 十进制 十六进制
0000 .... 0 .... 0 .... 0
0001 .... 1 .... 1 .... 1
0010 .... 2 .... 2 .... 2
0011 .... 3 .... 3 .... 3
0100 .... 4 .... 4 .... 4
0101 .... 5 .... 5 .... 5
0110 .... 6 .... 6 .... 6
0111 .... 7 .... 7 .... 7
1000 .... 8 .... 10 .... 8
1001 .... 9 .... 11 .... 9
1010 .... 10 .... 12 .... A
1011 .... 11 .... 13 .... B
1100 .... 12 .... 14 .... C
1101 .... 13 .... 15 .... D
1110 .... 14 .... 16 .... E
1111 1.... 5 .... 17 .... F
10000 .... 16 .... 20 .... 10
小数部分换算:
0.1 .... 0.5 .... 0.4 .... 0.8
0.01 .... 0.25 .... 0.2 .... 0.4
0.001 .... 0.125 .... 0.1.... 0.2
0.0001 .... 0.0625 .... 0.04 .... 0.1
0.00001 .... 0.03125 .... 0.02.... 0.08
你可以对照上面的表格进行换算。
换算规则:
1)二至十:如:1000111 2的7次-2的5次-2的4次-2的3次-1=128-32-16-4-1=71D(假设有N位就写为2的N次,假设中间第5位有0就写成0次的5-1,在最后-1,就是十进制的答案)
2)二至八:三位化一位 从小数点向右数 如:1 000 111=107Q(不够在补0,001 000 111然后在对照上边表格)
3)二至十六:四位化一位(和二至八类似)
4)十至二:整除:除2取余(从下向上记录)小数乘2取整
5)八至二:一位化三位
6)十六至二:一位化四位
1/2 = ....1
最简单省事的
windows自带计算器 选科学型