
2.1 数
数是最简单的数据形式,也是计算机能够直接表示的。同时,计算机只识别和处理数字信息。各种形式的信息在存储到计算机中时都转化为各种数字。所以本节专讲数的表示,下面将讲解四种常用的进制:十进制、二进制、八进制、十六进制。
2.1.1 十进制
十进制数是组成以10为基础的数字系统。由0、1、2、3、4、5、6、7、8、9十个基本数字组成。其中每一个数都用括号括起来,括号后面的10为基数,它的表示如图2.1所示。1998的表示形式如图2.2所示。

图2.1 十进制数

图2.2 1998的十进制表示
在运算时,十进制数需要遵循进位规则和借位规则。下面详细讲解这两种规则。
1.进位规则
进位是在加法中,每位等于基数时向前一位进一。
十进制的进位规则为“逢十进一”,即两个数相加,低位满十就向高位进一,此位相加后的结果减去10为此位的结果,低位向高位进上去的1,在进上去的高位进行运算时用到,如图2.3所示。

图2.3 进位规则“逢十进一”
2.借位规则
借位是减法运算中,被减数的某一位数不够减时向前一位借一,化成本位的数量,然后再减。
十进制借位规则为“借一当十”,即当两个数相减时,被减数的低位小于减数的低位时,向高位借一。看成10加在此位做被减数,再去减减数,低位向高位借走的1,在借走的高位做运算时用到。如图2.4所示。

图2.4 借位规则“借一当十”
2.1.2 二进制
二进制是计算机的内存储器上唯一能识别的编码,因为机器的电路状态只有两种,开和关。一方面使用二进制易于物理实现,另一方面,资料存储、传送和处理简单可靠;最后运算规则简单,使计算器具有逻辑性。
1.二进制的构成
二进制数据是用0和1两个数码来表示的数,它的基数为2。其中每一个数都用括号括起来,其中基数表示可用进制中数码的个数。进位规则是“逢二进一”。借位规则是“借一当二”。二进制的具体表示形式如表2.1所示。
表2.1 二进制的表现形式

二进制数的表示形式如图2.5所示。

图2.5 二进制数
如0001的表示形式如图2.6所示。

图2.6 0001的二进制
2.进位规则
进位规则为“逢二进一”,即两个数相加,低位满二就向高位进一,此位相加后的结果减去2为此位的结果,低位向高位进上去的1,在进上去的高位进行运算时用到,如图2.7所示。

图2.7 进位规则“逢二进一”
3.借位规则
借位规则为“借一当二”,即当两个数相减时,被减数的低位小于减数的低位时,向高位借一,看成2加在此位做被减数,再去减减数,低位向高位借走的1,在借走的高位做运算时用到。如图2.8所示。

图2.8 借位规则“借一当二”
4.十进制转化为二进制——辗除法
表2.1只给出了基本的十进制和二进制的转换关系。要想获得更多的转换关系,可以使用辗除法。辗除法也就是“除模取余”法。除模取余就是将一个几进制的数转化成另一个进制时,另一个进制就是模,用将要转化的进制数除以模,取它的余数。
下面以十进制的“19”转换为二进制为例,如图2.9所示,十进制“19”转换成二进制的形式为“10011”。

图2.9 十进制向二进制的转换
2.1.3 八进制
由于数据用二进制表示长度会比较长,书写以及记忆不方便,所以人们逐步使用八进制表示数据。下面主要讲解八进制的构成和表示及其与二进制之间的转换。
1.八进制的构成和表示
八进制的数一定要以数字0开头,是用0、1、2、3、4、5、6、7八个数表示的。它的基数为8,进位规则是“逢八进一”。八进制的表示如表2.2所示。
表2.2 八进制的表示形式

八进制数的表示方式如图2.10所示。

图2.10 八进制数
7的表示形式如图2.11所示。

图2.11 007的八进制表示
2.进位规则
进位规则为“逢八进一”,即两个数相加,低位满八就向高位进一,此位相加后的结果减去8为此位的结果,低位向高位进上去的1,在进上去的高位进行运算时用到,如图2.12所示。

图2.12 进位规则“逢八进一”
3.二进制和八进制的转化
二进制向八进制的转换是每三位二进制数转换为一位八进制数,运算的顺序是从低位向高位依次进行,商位不足三位用零补充。以二进制“1111”为例,如图2.13所示。

图2.13 二进制向八进制转换
八进制向二进制转换的思路是八进制的一位转换为二进制的三位,运算的顺序是从低位向高位依次进行。同样以八进制“17”为例,具体转换如图2.14所示。

图2.14 八进制转换为二进制
2.1.4 十六进制
虽然有了八进制,但是遇到更大的数字,八进制还是不方便,十六进制诞生了。下面讲解十六进制的构成和表示以及其与二进制之间的转换。
1.十六进制的构成和表示
十六进制数一定要以数字0和字母x开头(即0x),是用0~9以及A、B、C、D、E、F十六个数表示的。它的基数为16,进位规则是“逢十六进一”。十六进制的表示如表2.3所示。
表2.3 十六进制的表示形式

十六进制数的表示方式如图2.15所示。

图2.15 十六进制数
0x7的表示形式如图2.16所示。

图2.16 0x7
2.进位规则
进位规则为“逢十六进一”,即两个数相加,低位满十六就向高位进一,此位相加后的结果减去16为此位的结果,低位向高位进上去的1,在进上去的高位进行运算时用到,如图2.17所示。

图2.17 进位规则“逢十六进一”
3.二进制和十六进制的转化
二进制向十六进制转换时,四位转换成十六进制的一位,运算的顺序是从低位向高位依次进行,商位不足四位用零补。以“1110011”转换成十六进制为例,具体实现如图2.18所示。

图2.18 二进制向十六进制转换
注意:从低位向高位进行,最后不够四位,则在缺少的高位补0。
十六进制向二进制转换,就是把十六进制的一位转换成二进制的四位,注意运算的顺序是从低位向高位依次进行。同样以十六进制“73”为例,具体转换如图2.19所示。

图2.19 十六进制向二进制转换