我们平时最经常用到的也不过那几种进制类型,二进制、八进制、十进制、十六进制。八进制在计算机中应用的不是很多,下面谈一下对二、十、十六进制的理解及他们之间的转换。
1. 十进制(逢十进一)
十进制的基数:10
十进制的位权:10^n
每一个十进制数,我们都可以转换成位权形势:124 = 1*10^2 + 2*10^1 + 4*10^0
2. 二进制(逢二进一)
二进制的基数:2
二进制的位权:2^n
3. 十六进制(逢十六进一)
十六进制的基数:16
十六进制的位权:16^n
十六进制由数字 0~9 加上字母 a~f 组成,总共15个元素。如果要表示一个十六进制的数字,需要在前两位加 上0X,以 区别于十进制数字。
4. 十进制转二进制
最简单的办法就是记住一串数字,可以降低我们运算的难度:
- 2^9 2^8 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
- 516 258 128 64 32 16 8 4 2 1
例子:计算十进制数129转成二进制。
我们可以直接去选取比129小的平方数,即128,然后剩下的再按照这种方法选择,对应的位数确定后 填上1,剩 下的空位数用0补齐。这样就能很容易的看出二进制应该为:1000 0001
如果要将二进制转成十进制,也可以按照上面的对应关系,直接选取想加。
5. 二进制与十六进制的转换
二进制与十六进制之间的转换方法,我觉得使用 8421分隔法比较简单。十六进制数字的每一位,都可以与二 进制的四 个字节位对应,这样的话,如果要把二进制转换成十六进制,我们只需要将二进制四位四位分 割,然后分别对应一个 十六进制数字,最后合到一块即可。反之亦然。
例子:将十六进制数0x2af 转换成二进制数
- 首先,我们把这个十六进制的位分割开来,成为 2 a f;
- 其次,一一对应二进制数位,2对应0010,a对应1010,f对应1111;
- 最后,将转换好的二进制位数重新组合起来,结果即为:0010 1010 1111