前言
我们经常能听到2进制、8进制、10进制、16进制这样的讲法,那是什么意思呢?其实2进制、8进
制、10进制、16进制是数值的不同表示形式而已。
比如:数值15的各种进制的表示形式:
- 15的2进制:1111
- 15的8进制:17
- 15的10进制:15
- 15的16进制:F
我们重点介绍一下二进制:
首先我们还是得从10进制讲起,其实10进制是我们生活中经常使用的,我们已经形成了很多常识:
- 10进制中满10进1
- 10进制的数字每⼀位都是0~9的数字组成
以此类推,其实二进制也是⼀样的
- 2进制中满2进1
- 2进制的数字每⼀位都是0~1的数字组成
那么 1101 就是一个二进制的数字了。
1. 二进制转十进制
其实10进制的123表示的值是一百二十三,为什么是这个值呢?其实10进制的每一位是有权重的,10进制的数字从右向左是个位、十位、百位....,分别每一位的权重是10^0,10^1,10^2……
如下图:10进制123每⼀位权重的理解
2进制和10进制是类似的,只不过2进制的每⼀位的权重,从右向左是:2^0、2^1、2^2……
如果是2进制的1101,该怎么理解呢?
如图:2进制1101每⼀位权重的理解
2. 十进制转二进制
方法:采用短除法,并且把余数写在商的左边,一直除2直到商为0停止。再由下往上依次所得的余数就是10进制换出的2进制。
如:10进制的125转换位为22进制:1111101
3. 二进制转八进制和十六进制
3. 1 二进制转八进制
8进制的数字每一位是0~7,0~7的数字各自写成2进制,最多有3个2进制位就足够了,比如7的二进制是111,所以在2进制转8进制数的时候,从2进制序列中右边低位开始向左每3个2进制位会换算一个8进制位,剩余不够3个2进制位的直接换算。
如:2进制的01101011,换成8进制:0153,0开头的数字,会被当做8进制。
3.2 二进制转十六进制
16进制的数字每一位是0~9,a~f,0~9,a~f 的数字各自写成2进制,最多有4个2进制位就足够了,比如 f 的二进制是1111,所以在2进制转16进制数的时候,从2进制序列中右边低位开始向左每4个2进制位会换算一个16进制位,剩余不够4个二进制位的直接换算。
如:2进制的01101011,换成16进制:0x6b,16进制表示的时候前面加0x
4.总结
- 非十进制转十进制:权重之和
- 十进制转二进制:短除法
- 二进制转八进制: 从2进制序列中右边低位开始向左每3个2进制位会换算一个8进制位,剩余不够3个2进制位的直接换算。
- 二进制转十六进制:从2进制序列中右边低位开始向左每4个2进制位会换算一个16进制位,剩余不够4个二进制位的直接换算。
期待
您的支持给予我莫大的鼓励!!!