进制转换
1.了解2^n
-
所有进制都是在二进制基础上进行的,因此要了解进制就需要先了解二进制
-
当二进制都为1时 ,即11111111
- 从右往左,按位数分别对应1-2-4-8-16-32-64-128,注意:最右边为1位数,往左依次增1
- 1-2-4-8-16-32-64-128由来,(2^n-1)其中n为位数: 2^8-1=128 2^8-2=64 2^8-3=32 2^8-4=16 2^8-5=8 2^8-6=4 2^8-7=2 2^8-8=1,依照人类阅读是从左往右读,而在计算机中左边是最高位。
- 所以十进制的结果为,位数的对应数之和:128+64+32+16+8+4+2+1=255,即二进制11111111的十进制为255
- 当二进制中有0时,不用管是多少位数以及位数的对应数是多少,加0即可,举例:11111110和10011111,结果为:128+64+32+16+8+4+2+0=254和128+0+0+16+8+4+2+1=159
2.十进制转二进制
以150为例
套用128-64-32-16-8-4-2-1
因为150可以是:128+16+4+2=150
128+16+4+2可以看出是有四个1组合的,分别是8,5,3,2位数。
所以8,5,3,2位数为1,其他位数为0即可
所以150二进制结果为:
10010110
再举个例子:159
因为159=128+16+8+4+2+1
所以8,5,4,3,2,1位数为1
因此得出159二进制结果为:
10011111
3.二进制转十进制
以1001001为例
套用128-64-32-16-8-4-2-1
因为1001001中1是在7,4,1位数
所以取出7,4,1位数对应的数为:64,8,1
最后将对应的数相加即可:64+8+1=73
因此得出二进制1001001的十进制结果为:
73
4.二进制转换八进制
以10101010为例
将10101010先依次从右往左分割为每三位数为一组,当最右边分割如果不够三位数为一组时,则需要在前边补0即010 101 010
将每组套用8-4-2-1:
010中只有一个1且为第2位数,即对应的数为也为2
101中有两个1,分别是第1和第3位数,即对应数为4和1,4+1=5
010中只有一个1且为第2位数,即对应的数为2
最后得出3个数分别是2,5,2,分别将它们重新组合则为252 注意:组合应遵循原先分组的顺序
因此二进制10101010的八进制结果为252
5.二进制转换十六进制
以1100101为例
将1100101先依次从右往左分割为每四位数为一组,当最右边分割如果不够四位数为一组时,则需要在前边补0即0110 0101
将每组套用16-8-4-2-1:
0110中有两个1,分别是第2和3第位数,即对应的数为2和4,2+4=6
0101中有两个1,分别是第1和第3位数,即对应数为4和1,4+1=5
因此二进制10101010的十六进制结果为:65
6.小数部分转换进制
以56.8125转换二进制为例
整数部分的二进制为:(32+16+8=56)即111000
0.8125*2=1.625,取整数部分1,小数部分继续乘2
0.625*2=1.25,取整数部分1,小数部分继续乘2
0.25*2=0.5,取整数部分0,小数部分继续乘2
0.5*2=1.0,取整数部分1,小数部分为0即结束
所以小数部分二进制为1101
所以十进制56.8125的二进制结果为111000.1101