1. 1. 1 十进制数的表示
自古代以来,人们常采用十进制数来计数,它的基数为10,每位数可用下列十个数码之一来表示,即0,l,2,3,4,5,6,7,8,9。
十进制数的计数规律是“逢十进一”。也就是说,每位数累计不能超过10,计满10就应向高位进l。
当我们面前出现一个十进制数,如512.32时,就立刻会联想到:这个数的最左边第一位为百位(5代表500 ),第二位为十位(1代表10 ),第三位为个位(2代表2),小数点后面第一位为十分位(3代表3/10 ),第二位为百分位(2代表2/100 )。这里百、十、个、十分之一和百分之一都是10的n次幂,它取决于系数所在的位置,称之为“权”。十进制数512.32从左至右各位的权分别是102,101,100,10-1,10-2。因此,将512.32按权展开的形式如下:
512.32=5×102+1×101+2×100+3×10-1+2×10-2
等式左边的表示方法称之为位置记数法,等式右边则是其按权展开式。
一般说来,对于任意一个十进制数S,可用位置记数法表示如下:
(S )10= (an-1an-2...a1a0a-1a-2...a-m )10 (1.1.1)
也可用按权展开式表示如下:
(S )10= an-1×10n-1+an-2×10n-2+...+a1×101+a0×100
+a-1×10-1+a-2×10-2+...+a-m×10-m
= (1.1.2)
式中,ai为0~9这10个数码中的任意一个;n为整数部分的位数;m为小数部分的位数。
通常,对十进制数的表示,可以在数字的右下角标注10或D (Decimal )。
1. 1. 2 二进制数的表示
数字系统中最常使用的进位制是二进制。在二进制中,每一位只有0和1两个数码,所以计数的基数为2。二进制的计数规则是每位计满2就向高位进一,即“逢二进一”。例如,(1001 ),就是一个二进制数,不同数位的数码表示的值不同,各位的权值是以2为底的连续整数幂,从右向左递增。
对于任意一个二进制数S,用位置计数法表示为
(S )2= (an-1an-2...a1a0a-1a-2...a-m )2 (1.1.3)
用按权展开式表示为
(S)2= an-1×2n-1+an-2×2n-2+...+a1×21+a0×20+a-1×2-1+a-2×2-2+...+a-m×2-m
= (1.1.4)
式中,ai为数码0或1;n为整数部分的位数;m为小数部分的位数。
通常,对二进制数的表示,可以在数字右下角标注2或B (Binary )。
1. 1. 3 八进制数、十六制数的表示
由于二进制数简单、容易实现,所以它是数字系统中、特别是计算机中广泛采用的一种数制。但如用二进制表示一个十进制数时,需用四位二进制数才能表示一位十进制数,所用的位数比用十进制数表示的位数多,因此读写很不方便,所有在实际工作中常采用八进制或十六进制。
八进制数的基数是8,采用的数码是0~7这八个数。计数规则是“逢八进一”,相邻两位高位的权值是低位权值的8倍。例如,数(47.6 )8就表示一个八进制数。由于八进制的数码和十进制前8个数码相同,所以为了便于区分,通常在数字的右下角标注8或O (Octal )。
十六进制数的基数为16,分别用0~9,A (10 ),B (11 ),C (12 ),D (13 ),E (14 ),F(15 )表示。十六进制的计数规则是“逢十六进一”,相邻高位的权值是低位权值的16倍。例如,数(54AF.8B )16就是一个十六进制数。通常,在数字的右下角标注16或H(Hexadecimal )。
与二进制数一样,任意—个八进制数和十六进制数均可用位置计数法的形式和按权展开式的形式表示。
一般说来,对于任意的数S,都能表示成以r为基数的r进制数,数S的表示方法也有两种形式,即位置记数法和按权展开式。
位置记数法:
(S )r = (an-1an-2...a1a0a-1a-2...a-m )r (1.1.5)
用按权展开式表示为
(S)r = an-1×rn-1+an-2×rn-2+...+a1×r1+a0×r0+a-1×r-1+a-2×r-2+...+a-m×r-m
= (1.1.6)
式中,ai为数码0~r-1数码中的一个;r为该进位制的基数;n为整数部分的位数;m为小数部分的位数。
r进制的计数规则是“逢r进一”。
不同数制的各种数码见表1. 1.1,该表列出了当r为10,2,8,16时,各种进位计数制中开始的16个自然数。
表1.1.1 不同进位计数制的各种数码 |
|||
十进制数 (r= 10) |
二进制数 (r= 2) |
八进制数 (r= 8) |
十六进制数 (r= 16) |
0 |
0000 |
0 |
0 |
1 |
0001 |
1 |
1 |
2 |
0010 |
2 |
2 |
3 |
0011 |
3 |
3 |
4 |
0100 |
4 |
4 |
5 |
0101 |
5 |
5 |
6 |
0110 |
6 |
6 |
7 |
0111 |
7 |
7 |
8 |
1000 |
10 |
8 |
9 |
1001 |
11 |
9 |
10 |
1010 |
12 |
A |
11 |
1011 |
13 |
B |
12 |
1100 |
14 |
C |
13 |
1101 |
15 |
D |
14 |
1110 |
16 |
E |
15 |
1111 |
17 |
F |
1. 1. 4 二进制的算术运算和逻辑运算
在数字电路中,1位二进制数码的1和0不仅可以表示数量的大小,而且也可以表示两种不同的逻辑状态。例如,我们既可以用1和0来表示电路的通断、电灯的亮与暗这些直观的物理现象,也可以表示一件事情的是与非、好和坏、真与假、有和无等逻辑问题。我们称这些只有两种对立逻辑状态的逻辑关系为2值逻辑。
当用两个二进制数码表示两个数量大小时,它们之间可以进行数值运算,这种运算就称为算术运算,算术运算的结果是得到一个数量(算术)值。当两个二进制数码表示两个不同的逻辑状态时,他们之间可以按照规定的某种因果关系进行所谓逻辑运算。逻辑运算的结果是得到一个逻辑值,逻辑运算和算术运算有根本之上的不同。下面我们先介绍二进制算术运算。
在数字电路中为什么选择使用二进制数制呢?这是因为用二进制来表示数字和进行运算具有如下特点:
(1 )二进制数只有0和1两个数码,任何具有两个不同稳定状态的元件都可用来表示一位二进制数,例如晶体管的导通和截止、脉冲信号的有和无、灯光的亮和灭等。
(2 )二进制运算规则与其它数制的运算规则相比最简单,其运算规则是:
加法规则
0+0= 0 0+1= 1
1+0= 1 1+1= 0 (同时向相邻高位进1 )
减法规则
0-0= 0 0-1= 1 (同时向相邻高位借1 )
1-0= 1 1-1= 0
乘法规则
0×0= 0 0×1= 0
1×0= 0 1×1= 1
除法规则
0÷1= 0 1÷1= 1
下面举几个二进制数运算的例子。
例1.1.1对1001+1011进行加法运算。
解:
由此可见,二进制数的加法运算和十进制数的加法运算相似,但采用“逢二进—”的法则,即每位数累计到2时,本位就记为0,且向相邻高位进1。
例1.1.2 对10100-1110进行减法运算。
解:
在二进制减法中采用了“借一当二”的法则,减法运算从低位起按位进行,在遇到0减1时,就要向相邻高位借1,也就是从相邻高位减去1。
例1.1.3对1011×1001进行乘法运算。
解:
从二进制数的乘法运算过程中可以看出,二进制数的乘法运算和十进制数的乘法运算相似,只不过对乘积部分进行累加时要按“逢二进一”的原则来运算。
例1.1.4 对10100101÷100l进行除法运算。
解:
从二进制数的除法运算过程中可以看出,二进制数的除法运算同十进制数的除法运算相类似,但采用二进制数的除法运算规则。
二进制数的缺点是书写时位数较长,不便记忆和阅读。因此,通常选用八进制和十六进制数。这两种数制相对位数较短,便于书写和阅读,容易记忆,且非常容易将它们转换成二进制数。