
1.2.1 数制
1.数制的概念
数制又称进位计数制,是指用统一的符号规则来表示数值的方法,它有3个基本术语:
①数符:用不同的数字符号来表示一种数制的数值,这些数字符号称为“数符”。
②基数:数制所允许使用的数符个数称为“基数”。
③权值:某数制中每一位所对应的单位值称为“权值”,或称“位权值”,简称“权”。
在进位计数制中,使用数符的组合形成多位数,按基数来进位、借位,用权值来计数。一个多位数可以表示为

式中,i为某一位的位序号;Ai为i位上的一个数符,0≤Ai≤R-1,如十进制有0、1、2……8、9共10个数符;R为基数,将基数为R的数称为R进制数,如十进制的R为10;m为小数部分最低位序号;n为整数部分最高位序号(整数部分的实际位序号是从0开始,因此整数部分为n+1位)。
式(1-1)将一个数表示为多项式,也称为数的多项式表示。例如,十进制数786,它可以根据式(1-1)表示为786=7×102+8×101+6×100,等式的左边为顺序计数,右边则为按式(1-1)的多项式表示。实际上把任何进制的数按式(1-1)展开求和就得到了它对应的十进制数,所以式(1-1)也是不同进制数之间相互转换的基础。
由此,可以将进位计数制的基本特点归纳为:
①一个R进制的数有R个数符。
②最小的数符为0,最大的数符为R-1。
③计数规则为“逢R进1,借1当R”。
2.常用数制
在日常生活中,人们通常使用十进制数,但实际上存在着多种进位计数制,如二进制(2只手为1双手)、十二进制(12个信封为1打信封)、十六进制(成语“半斤八两”,中国古代计重体制,1斤=16两)、二十四进制(1天有24小时)、六十进制(60秒为1分钟,60分钟为1小时)等。在计算机内部,一切信息的存储、处理与传输均采用二进制的形式,但由于二进制数的阅读和书写很不方便,因此在阅读和书写时又通常采用八进制数和十六进制数来表示。表1-2列出了常用的进位计数制。
表1-2 常用进位计数制

(1)十进制
十进制(Decimal System)有0~9共10个数符,基数为10,权系数为10i(i为整数),计数规则为“逢10进1,借1当10”。对十进制的特点我们非常熟悉,因此不再详细介绍。
(2)二进制
二进制(Binary System)是计算机内部采用的数制。二进制有两个数符0和1,基数为2,权系数为2i(i为整数),计数规则为“逢2进1,借1当2”。一个二进制数可以使用式(1-1)展开,例如:
(10101101)2=1×27+0×26+1×25+0×24+1×23+1×22+0×21+1×20
(3)八进制
八进制(Octal System)有8个数符,分别用0、1、2、3、4、5、6、7共8个数符表示,基数为8,权系数为8i(i为整数),计数规则是“逢8进1,借1当8”。由于8=23,因此1位八进制数对应于3位二进制数。一个八进制数可以使用式(1-1)展开,例如:
(753.64)8=7×82+5×81+3×80+6×8-1+4×8-2
(4)十六进制
十六进制(Hexadecimal System)有16个数符,分别用0、1……9、A、B、C、D、E、F表示,其中A、B、C、D、E、F分别对应十进制的10、11、12、13、14、15。十六进制的基数为16,权系数为16i(i为整数),计数规则是“逢16进1,借1当16”。由于16=24,因此1位十六进制数对应于4位二进制数。一个十六进制数可以使用式(1-1)展开,例如:
(3EC.B9)16=3×162+14×161+12×160+11×16-1+9×16-2
注意:为了区分不同进制的数,我们在数字(外加括号)的右下角加脚注10、2、8、16分别表示十进制、二进制、八进制和十六进制。或将D、B、O、H4个字母放在数的末尾以区分上述4种进制。例如,256D或256表示十进制数,1001B表示二进制数,427O表示八进制数,4B7FH表示十六进制数。
3.计算机采用二进制的原因
人们日常使用的是十进制,但是由于技术上的原因,计算机内部一律采用二进制表示数据和信息,选择二进制的主要原因是:
(1)二进制容易被物理器件所实现
例如,开关的两个状态(ON/OFF)可以用来表示二进制两个数符0和1,一个二极管的截止和导通也能够与二进制状态对应。
(2)二进制数可靠性高
两种状态表示二进制两个数符,数字传输和处理不容易出错,电路工作可靠,抗干扰能力强。
(3)二进制运算规则简单
例如,二进制的加法法则只有3个,乘法法则也只有3个,简化了计算机内部器件的电路,提高了机器运算的速度。
(4)二进制逻辑性强
计算机工作原理是建立在逻辑运算基础上的,逻辑代数是逻辑运算的理论依据。二进制只有两个数符0和1,正好代表逻辑代数中的“真”和“假”。
4.二进制的运算规则
二进制运算有算术运算、逻辑运算和移位运算等,这里主要介绍加法、乘法和逻辑运算。
(1)加法运算规则
0+0=0,0+1=1,1+1=10
注意:1+1=10,等号右边10中的1是进位。
(2)乘法运算规则
0×0=0,0×1=0,1×1=1
【例1-1】计算10110101+10011010的值。

【例1-2】计算1101×110的值。

(3)逻辑运算规则
二进制数1和0在逻辑上可以代表“真”与“假”、“是”与“否”、“有”与“无”。这种具有逻辑属性的变量称为逻辑变量。计算机的逻辑运算和算术运算的主要区别是:逻辑运算是按位进行的,位与位之间不像加减运算那样有进位或借位的联系。逻辑运算主要包括3种基本运算:逻辑加法(又称“或”运算)、逻辑乘法(又称“与”运算)和逻辑否定(又称“非”运算)。此外,“异或”运算也很有用。
①逻辑加法(“或”运算)。逻辑加法通常用符号“+”或“∨”来表示。逻辑加法运算规则如下:
0+0=00∨0=0;0+1=10∨1=1;1+0=11∨0=1;1+1=11∨1=1。
可以看出,逻辑加法有“或”的意义。也就是说,在给定的逻辑变量中,A或B只要有一个为1,其逻辑加的结果为1;两者都为1则逻辑加的结果为1。
②逻辑乘法(“与”运算)。逻辑乘法通常用符号“×”或“∧”或“·”来表示。逻辑乘法运算规则如下:
0×0=00∧0=00·0=0;0×1=00∧1=00·1=0;
1×0=01∧0=01·0=0;1×1=11∧1=11·1=1。
不难看出,逻辑乘法有“与”的意义。它表示只当参与运算的逻辑变量都同时取值为1时,其逻辑乘积才等于1。
③逻辑否定(非运算)。逻辑非运算又称逻辑否运算。其运算规则为:

④异或逻辑运算(半加运算)。异或运算通常用符号“⊕”表示,其运算规则为:
0⊕0=00同0异或,结果为00⊕1=10同1异或,结果为1
1⊕0=11同0异或,结果为11⊕1=01同1异或,结果为0
即两个逻辑变量相异,输出才为1。