第2章 数据的表示和运算
2.1 数值与编码
2.1.1 进位计数制及其相互转换
在计算机系统内部,所有的信息都是用二进制进行编码的,原因如下:
1)二进制只有两种状态,所以有两个稳定状态的物理器件就可以表示二进制数的每一位,如利用高低电平和电荷的正负极性都可以很方便的表示0和1
2)二进制位1和0正好与逻辑值“真”和“假”对应,为计算机实现逻辑运算和程序中的逻辑判断提供了便利条件
3)二进制的编码和运算规则很简单,通过逻辑门电路能方便的实现算术运算
1.进位计数法
进位计数法是一种计数方法。常用的进位计数法有十进制、二进制、八进制和十六进制等
在每种进位计数法中,所用到的不同数码的个数称为基数,如十进制的基数为10(0~9)
在每种进位计数法中,每个数码所表示的数值等于本身乘以一个与它所在数位有关的常数,这个常数称为位权,一个进位数的数值大小就是它的各位数码按权相加
2.不同进制之间的相互转化
(1)二进制转八进制和十六进制
对于一个混合二进制数(包含整数部分和小数部分),转换时以小数点为界
整数部分,从小数点开始往左数,将一串二进制数分为3位(八进制)一组或4位(十六进制)一组,不够则用0补齐
小数部分,从小数点开始往右数,将一串二进制数分为3位(八进制)一组或4位(十六进制)一组,不够也用0补齐
然后分别用对应的八进制数或十六进制数取代
以二进制数1111000010.01101为例,转换为八进制数为1702.32
分组 | 001 | 111 | 000 | 010 | . | 011 | 010 |
---|---|---|---|---|---|---|---|
用八进制取代 | 1 | 7 | 0 | 2 | . | 3 | 2 |
八进制转16进制可以先转换为2进制再转换为16进制,八进制或十六进制转二进制时做上述流程相反操作即可
(2)任意进制数转换为十进制数
用各位数码与它们的权值相乘,再把乘积相加,就得到了一个十进制