基础知识

二进制的转换

10进制转化成2进制

1.一般我们用到的数1.2…100,都是10进制的数,如何转换成2进制呢
用所需要转换的数除以2,把余数记载下来,然后得的商继续除下去,知道最后一个为0。例如:101的二进制数
101/2 = 50 … 1(余1)
50/2 = 25 … 0(余0)
25/2 = 12 … 1(余1)
12/2 = 6 … 0
6/2 = 3 … 0
3/2 = 1 … 1
1/2 = 0 … 1
所以101的二进制就是 1100101

10进制转化成8进制

那99的8进制呢,也是一样的
99/8 = 12 … 3
12/8 = 1 … 4
1/8 = 0 … 1
所以99的8进制就是143

10进制转化成16进制

那101的16进制呢,也是一样的
101/16 = 6 … 5
6/16 = 0 … 6
所以101的8进制就是65

二进制转化成10进制:

二进制数从低位到高位(即从右往左)计算,第0位的权值是2的0次方,第1位的权值是2的1次方,第2位的权值是2的2次方,依次递增下去,把最后的结果相加的值就是十进制的值了。
将1100101转换成10进制
第0位 12^0 = 1
第1位 0
2^1 = 0
第2位 12^2 = 4
第3位 0
2^3 = 0
第4位 02^4 = 0
第5位 1
2^5 = 32
第6位 1*2^6 = 64
结果相加就是 1+0+4+0+0+32+64 = 101

8进制转化成10进制

八进制数从低位到高位(即从右往左)计算,第0位的权值是8的0次方,第1位的权值是8的1次方,第2位的权值是8的2次方,依次递增下去,把最后的结果相加的值就是十进制的值了。
143的8进制转换成10进制:
第0位 38^0 = 3
第1位 4
8^1 = 32
第1位 1*8^2 = 64
64+32+3 = 99

16进制转化成10进制

十六进制数从低位到高位(即从右往左)计算,第0位的权值是16的0次方,第1位的权值是16的1次方,第2位的权值是16的2次方,依次递增下去,把最后的结果相加的值就是十进制的值了。
十六进制的16个数为0123456789ABCDEF。
如将F21转化成10进制:
第0位 116^0 = 1
第1位 2
16^1 = 32
第2位 15*16^2 = 3840
3840+32+1 = 3873

2进制转化成8进制

取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。如果向左(向右)取三位后,取到最高(最低)位时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足三位。
例如:1100101转换成8进制

001:
12^0 = 1
0
2^0 = 0
0*2^2 = 0
1+0+0=1

100:
02^0 = 0
0
2^1 = 0
1*2^2 = 4
0+0+4=4

101:
12^0 = 1
0
2^1 = 0
1*2^2 = 4
4+0+1=5
结果为145