一、进制的由来
其实在计算机中,任何数据的存在及存储的形式均是二进制表示。那么二进制又是是什么?
二进制其实是由计算机的开关演变而来,因为在计算机中,用于表示的是电信号,高低电压,这无非就是一个开着或者关闭的开关。如下图:
对于上面得到的一串0,1数字串,就是一组信号,即可表示为数据,就代表二进制数,因此上面的一串01,就是一个二进制数:10010110.
对于上面的0和1,每一个0或者1表示一个位,而上面的8个0,1组成的就叫做一个字节。一个位(bit)就是一个二进制位。如下图表示:
上面介绍了二进制的由来,那么八进制又是如何演变而来的呢?
一个整数在计算机内存中表示也是一个二进制数据,但是如果一个数表示的二进制由一大串的0,1组成,那么这个数据表示起来就比较的麻烦因此就将三个二进制位分成一组,一个有8组值,因此叫八进制,如下:
八种组合方式依次从000~111用数字0~7表示,那么这就是八进制数的由来。
同理,当三个二进制位表示的数据的数据量还比较的庞大的话,就可以将四个二进制位表示为一个数,这时四个二进制位的组合方式一共有16中形式,因此这就是所谓的十六进制数。
二、进制的简单介绍
对于数据的表示形式(也就是一种计数的方式),我们有常见的四种进制,分别是以下四种:
- 二进制:0,1组成,满二进一
- 八进制:0~7组成,满八进一,以0开头
- 十进制:0~9组成,满十进一
- 十六进制:0~9和ABCDEF组成,满十六进一 ,以0x开头
其中十进制就是我们日常使用的表达方式。
三、进制的转换
二进制,十进制,八进制,十六进制之间均可以相互的转换。
a) 二进制转八进制
将每三个二进制位组成一组,求出每组的值,而后将每组值拼接起来,就是我们要求的八进制。如下图所示:
b) 二进制转十进制
如下计算:
1011(2) = 1 × 23 + 0 × 22 + 1 × 21 + 1 × 20 = 11(10)
或者使用8421码进行判断,如下图:
c) 二进制转十六进制
和二进制转八进制同理,从右向左每四个二进制位分为一组,而后计算出每组的十进制值,而后用十六进制符号表示。位不足补0,如下图所示:
d) 十六进制到八进制和十进制的转化
- 首先,将十六进制转换成二进制
- 而后根据得到的二进制直接转成十进制(十进制)
- 根据得到的二进制进行每三位二进制分组,求出相应的值,拼接的值就是八进制,如上
e) 八进制到其他进制的转换
- 同样是将八进制先转成二进制
- 在根据二进制计算出对应进制的值