购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3 算术运算和逻辑运算

1.3.1 计算机中二进制数的运算方法

1.定点数加法

规则:

例1:X=0.001,Y=0.101,计算X+Y(这里以定点小数为例,最高位为符号位,以下同)

解:

X+Y = 0.110

例2:X=-0.010,Y=-0.011,计算X+Y

解:

符号位左边的位按2取模后舍弃。

2.定点数减法

规则:

的计算方法是将 的符号位和数值位取反再加1。

例1:X=0.101,Y=0.010 ,计算X-Y

解:

符号位左边的位按2取模后舍弃。

3.定点数加减法溢出处理

双符号位法采用两个符号位,如果两个符号位相同,则没有溢出;如果不同,则表示出现溢出。

例1:X=0.001,Y=0.101,计算X+Y

解:

结果中两个符号位为00,这说明计算中没有溢出。

例2:X=0.110,Y=0.101,计算X+Y

解:

结果中两个符号位为01,这说明计算中存在溢出。

也可以通过进位信号来判断,当结果的最高位和符号位的进位信号一致时(都有进位信号或都没有进位信号),则没有溢出,否则表示有溢出。

例:

符号位没有进位,而数值位有进位产生,则说明有溢出发生。

4.浮点数的运算

浮动数运算过程比定点数复杂,包括以下过程。

(1)对阶

首先计算两个数的指数差,把指数小的向指数大的对齐,并将尾数右移指数差的位数,这样两个浮点数就完成了对阶的操作。可以看出,对阶的过程可能使得指数小的浮点数失去一些有效位。如果两个浮点数阶数相差很大,大于指数小的浮点数的尾数宽度,那么对阶后那个浮点数的尾数就变成了0,即当做机器零处理了。

(2)尾数计算

对阶完成后,两个浮点数尾数就如同定点数,计算过程同定点数计算。

(3)结果格式化

尾数计算后,可能会产生溢出,此时将尾数右移,同时指数加1,如果指数加1后发生了溢出,则表示两个浮点数的运算发生了溢出。

如果尾数计算没有溢出,则尾数不断左移,同时指数减1,直到尾数为格式化数。如果这个过程中,指数小于机器能表达的最小数,则将结果置“机器零”,这种情况称为下溢。

5.BCD码及其运算

人们习惯于十进制,不习惯于二进制,而计算机只用二进制。有一个折中的方法,就是8421码。8421码使用4个二进制数来表示一位十进制数。比如,十进制的138的8421码表示为0001 0011 1000,所以这种表示方法也称为二进制编码的十进制编码,简称BCD码。这样比较容易阅读。在许多通信程序中,都采用BCD码来表示数据,这样在调试的过程中,比较容易读出其中的内容。

由于BCD码的特性,如果使用BCD码进行计算时,可能需要进行修正。如:

3+5 : 0011 + 0101 = 1000 正确。

而6+7 : 0110 + 0111 = 1101

这已经不在BCD码的范围内,此时需要进行修正。修正的方法是本位加6,并向高位进1。

还有一种编码是将BCD码加3作为数字表示法,称为余3码,在使用余3码进行计算时,从最高位产生的进位是真正的进位,对每4位的结果,如果是小于等于9的,则减3;如果大于9,则加3。

1.3.2 逻辑代数的基本运算和逻辑表达式的化简

逻辑代数中参与操作的只有0和1,或者称为真或假。

1.“逻辑非”运算

考虑二进制变量A,“逻辑非”运算将A转换成N O T (A),它的作用如下:

如果A= 0,那么N O T (A) = 1;

如果A= 1,那么N O T (A) = 0。

“逻辑非”运算的表示是在变量上画一条直线,如A的逻辑非是: 。N O T函数也称为反相器,其运算称为取反。

2.“逻辑或”运算

“逻辑或”运算也称逻辑加运算,它的特点是两个或多个输入中只要有一个为1,则结果为1。它的符号有+、U、OR等

3.“逻辑与”运算

“逻辑与”运算也称为逻辑乘运算,它的特点是只有两个或者多个输入全部为1时,结果为1,否则结果为0。它的符号有×、∩、AND等。

在逻辑表达式中优先级从高到低是:“逻辑非”、“逻辑与”、“逻辑或”。

基本逻辑运算如表1-3所示。

表1-3 基本逻辑运算

4.与非门、或非门、异或门

与非门的表达式是: ,可以看出,与非门是当全部输入为1时,输出为0,否则为1。

或非门的表达式是: ,可以看出,或非门是当全部输入为0时,输出为1,否则为0。

异或门的表达式是: ,可以看出,异或门是当输入值不同时,输出为1,否则为0。

图1-1基本门电路

5.基本恒等式
1)非恒等式

对一个二进制变量进行二次N O T运算就是一个基本恒等式,其形式:

这个结果是显而易见的。

2)或恒等式

O R函数在任何一个输入为1时,其输出为1,由此可导出几个有用的恒等式。

A+ 1 = 1将1与任何数相或,其输出为1

A+ 0 =A在或门的输入加0,不会使或门输出某一特定的值

A+A=A一个变量与其自身相或的结果是同一变量

A + = 1称为互补性

3)与恒等式

与门的输入有一个为0时,其输出必为0。

6.代数定律
1)交换律

交换律允许我们以任何顺序安排变量而不改变其结果,对于两个变量A和B,可以给出:

2)结合律

结合律定义了进行运算的顺序。在或运算和与运算中,运算的分组都不会影响其结果。

由于结合律适用于或运算和与运算,我们写逻辑表达式时通常省略括号。

3)分配律

与运算和或运算的分配由下列定律来决定:

这与一般代数所用的乘法和加法的分配律相同。

这个等式可以使用真值表证明,如表1-4所示。

表1-4 真值表

4)狄摩根定理
5)有用的等式
7.逻辑表达式的化简

一个复杂的逻辑表达式需要多个逻辑电路来控制,而简单的逻辑表达式则能减少逻辑电路,而且能减少复杂性带来的可能性错误,所以有必要对复杂的逻辑表达式进行化简。

逻辑化简主要是利用上面提到的各种恒等式,将复杂的元素变成简单的表达式。

例1:化简

解: 分配律

例2:化简

解: 利用 89JEYSyRGJ97yR8w5IkfjTPVQ5/jMAKvwU4GWSvC7xq25cJCptOLDYuI+VRIT7w5

点击中间区域
呼出菜单
上一章
目录
下一章
×