0000
A Y 0 1 1 0
非运算规则:
0=1 1=0 A=A
例如: 1100 1000 =0011 0111 非门逻辑符号如表1-6所示。
第1章 计算机系统基础知识
表1-6 各种门电路符号及逻辑表达式
门电路 与门 或门 非门 符号 表达式 Y?AB A & Y B A ≥1 B Y Y?A?B Y?A 1 Y A 2. 常用的逻辑公式 ?
? ? ? ? ? ?
交换律: A+B = B+A
结合律: A+B+C=(A+B)+C=A+(B+C)ABC=(AB)C=A(BC) AB=BA 分配律: A(B+C)=AB+AC A+BC=(A+B)(A+C) 原变量吸收律:A+AB =A
反变量吸收律:A+AB=A +B A+AB=A+B 反演律(德摩根定理):AB=A+B;A?B=A?B 互补律:A+A=1;A?A=0
3. 逻辑表达式及其化简
1) 逻辑表达式与真值表
逻辑表达式是用逻辑运算符把逻辑变量(或逻辑常量)连接在一起表示某种逻辑关系的表达式。
把变量和表达式的各种取值都一一对应列举出来称为真值表。 例:证明AB+B·C+A·B=B+C。
解:对A、B、C的所有逻辑取值,如表1-7所示,两个逻辑表达式的函数值相等,证毕。
表1-7 真值表求证逻辑表达式
A 0 0 0 0
0 0 1 1 B 0 1 0 1 C A?B+B?C+A?B B+C ?+0?0+0?=1 ?+0?1+0?1=1 ?1+1?0+0?1=0 ?1+1?1+0?1=1 +0=1 +1=1 1+0=0 1+1=1 17
000
程序员考试同步辅导(上午科目)(第2版)
A 1 1 1 1 0 0 1 1 B 0 1 0 1 C B+C 续表 A?B+B?C+A?B 1?+0?0+1?=1 1?+0?1+1?=1 +0=1 +1=1 1+0=0 1+1=1 1?1+1?0+1?1=0 2) 逻辑表达式的化简
利用逻辑运算规律可以对逻辑表达式进行化简。 例:化简AB+BC+AB。 解:AB+BC+AB
=((A+A)B+BC) (结合律、分配律) =(B+BC) (互补律) =B+C (吸收律) 1.2.1.4 机器数的运算 1. 机器数的加减运算
1?1+1?1+1?1=1 在计算机中,通常只设置加法器,减法运算要转换为加法运算来实现。机器数的加、减法运算一般用补码来实现,其运算方法如下:
X±Y→[X]补+[±Y]补
例如(采用8位定点整数)。
8-5→(+1000)2+(-101)2→(+00001000)+(-00000101)→(00001000)补+(11111011)补=100000011 运算结果中的后8位的真值为+3,是正确的。
当运算的结果超过了字长的表示范围时,则产生溢出。双符号位方法是常用的溢出判别方法。在CPU中的加法器前设1位寄存器S0,运算时接收来自最高位(符号位S)的进位。运算前S0S被设为一操作数的符号,运算后对其进行判别,则有以下逻辑关系:当运算后S0⊕S=1,则溢出;当运算后S0⊕S=0,无溢出。
例如,8位定点整数的最大正数是127→(01111111)。若再加1则为10000000,按机器的表示格式,这个值被认为是-128,显然是不正确的,也就是说产生了溢出问题。下面用上述的双符号位方法完成此题的计算和判别。
127+1→(1111111)2+(1)2→转为机器数→(01111111)+(000000001) 运算过程:
0 1 1 1 1 1 1 1
+ 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 S0 S
因为S0⊕S=0⊕1=1,表示运算结果溢出。 2. 机器数的乘除运算
在计算机中实现乘除运算,主要有以下3种方法。
18
第1章 计算机系统基础知识
(1) 纯软件方案,乘除运算通过程序来完成。该方法速度很慢。 (2) 通过增加少量用来实现左右移位的逻辑电路来实现。 (3) 通过专用的硬件阵列乘法器(或除法器)来实现。 3. 浮点运算
1) 浮点加减运算
完成浮点数加减法有5个基本步骤:对阶、尾数加减、规格化、舍入和检查溢出。 例:两浮点数x = 201×0.1101,y = 211×(-0.1010)。假设尾数在计算机中以补码表示,可存储4位尾数,2位符号位,阶码以原码表示,求x+y。
解:将x、y转换成浮点数据格式 [x]浮 = 00 01,00.1101 [y]浮 = 00 11,11.0110 具体的步骤如下。
① 对阶,阶差为11-01=10,即2,因此将x的尾数右移两位,得: [x]浮 = 00 11,00.001101 ② 对尾数求和,得: [x+y]浮 = 00 11,11.100101
③ 由于符号位和第一位数相等,不是规格化数,向左规格化,得: [x+y]浮 = 00 10,11.001010 ④ 舍入,得: [x+y]浮 = 00 10,11.0010 ⑤ 数据无溢出,因此结果为: x+y = 210×(-0.1110) 2) 浮点乘除运算
浮点数相乘,其积的阶码等于两乘数的阶码之和,尾数等于两乘数的尾数之积,数符由两乘数的数符按逻辑异或求出。
浮点数相除,其商的阶码等于被除数的阶码减去除数的阶码,尾数等于被除数的尾数除以除数的尾数、数符由两除数的数符按逻辑异或求出。
1.2.2 典型例题分析
例1:逻辑变量X、Y进行逻辑“异或”(用⊕表示)运算的含义是:若X、Y取值相同(都为true或都为false),则X⊕Y的值为false,否则X⊕Y的值为true。用逻辑“与”(∧)、“或”(∨)、“非”(-)表示X⊕Y的式子为 (6) 。(2009年下半年试题6)
A. (X∧Y)∧(X∧Y) B. (X∨Y)∧(X∨Y) C. (X∧Y)∨(X∧Y) D. (X∨Y)∨(X∨Y)
分析:根据题意,异或代表当两者同为true或false时结果为false,其他情况均为true,即只要x、y不同为true或同为false,结果就为true ,分析可知只有C选项符合要求。
答案:C
19
程序员考试同步辅导(上午科目)(第2版)
例2:以下关于计算机中数据表示的叙述中,错误的是 (7) 。(2009年下半年试题7)
A. 计算机中的数值数据采用二进制表示,非数值性数据不使用二进制表示 B. 正整数的原码和补码表示形式相同,而负数的原码和补码表示形式不同 C. 数值中的小数点在硬件中不明确表示,而是采用约定位置的方式 D. 码长相同时,补码比原码可以多表示一个数
分析:计算机中的所有数据都是采用1和0的二进制来表示的,A选项叙述错误。 答案:A
例3:若阶码和尾数都采用补码表示,则格式浮点数的绝对值范围为 (8) 。(2009年下半年试题8)
A. 2-6~26 B. 2-63~264 C. 2-64~264 D. 2-64~263
分析:本题考查的是浮点数的运算,根据浮点数的运算法则我们可以得知此浮点数的绝对值范围为2-64~263 ,所以本题正确答案为D。
答案:D
例4:关于汉字编码的叙述,错误的是 (9) 。(2009年下半年试题9)
A. 采用矢量法表示汉字时,若两个汉字的笔画和字形不同,则它们的矢量编码一定不同
B. 采用点阵法表示汉字时,若两个汉字的笔画和字形不同,则它们的点阵信息量一定不同
C. 汉字的输入、存储和输出采用不同的编码,拼音码属于输入码 D. 汉字在计算机内存储时,其编码长度不能少于2个字节
分析:本题考查的是汉字编码的基础知识。采用点阵法表示汉字时,若两个汉字的笔画和字形不同,则它们的点阵信息量是可能相同的,所以本题应选择B。
答案:B
例5:二进制数11101.1001对应的八进制为 (22) 。(2009年下半年试题22) A. 35.44 B.35.11 C. 72.11 D.73.10
分析:本题考查的是计算机数的表示,根据二进制与八进制转换规则可知,对应的八进制数是35.44 。
答案:A
例6:若8位二进制数能被4整除,则其最低2位 (19) 。(2009年上半年试题19)
A. 不可能是01、00 B. 只能是10 C. 可能是01、00 D. 只能是00
分析:若8位二进制数能被4整除,则其最低2位不可能是01和10,只能是00 。因为前6位表示的数一定是4的整数倍,所以后两位只能是0 。
答案:D
20
相关推荐: