4计算机科学导论第四章-数据运算.ppt
1
第4章
数据运算
(Operations on Data)
2
列出在数据上进行的三类运算.
在位模式上进行一元和二元逻辑运算.
区分逻辑移位运算和算术移位运算.
在位模式上进行逻辑移位运算.
在以二进制补码形式存储的整数上进行算术移位运算.
在以二进制补码形式存储的整数上进行加法和减法运算.
在以符号加绝对值形式存储的整数上进行加法和减法运算.
在以浮点格式存储的实数上进行加法和减法的运算.
理解逻辑和算数运算的一些应用.
教学目标
通过本章的学习,同学们应该能够:
3
4-1 逻辑运算
Logical operations
几个基本概念:
1. 逻辑:指事物的规律性和因果关系。
2. 逻辑状态:完全对立、截然相反的二种状态。
3. 逻辑变量:代表逻辑状态的符号,取值 0 和 1。
4. 逻辑函数:输出是输入条件的函数,有一定的因果关系
逻辑运算:是指对因果关系进行分析的一种运算。逻辑运算的结果并不表示数值的大小,而是表示的一种逻辑概念。若成立用真或1表示,若不成立用假或0表示。
4
自然界中能表示两种不同状态的方法有很多种:
如果定义了一个位作为逻辑值,就可以对它进行逻辑运算了,逻辑运算可以接收1到2个位来生成1个位。如果逻辑运算作用在1个输入位上,就叫做一元运算,如果作用在2个位上,就叫做二元运算。
二进制数的逻辑运算有“与”、“或”、“非”、 “异或”4种。
5
位层次上的逻辑运算
1.非(NOT)
NOT运算符是一元操作符:它只有一个输入。输入位与输出位相反。
如果输入0,则输出1;如果输入1,则输出0.
换言之,NOT运算是输入的反转。
2.与(AND)
AND运算符是二元操作符:它有两个输入。
如果两个输入都是1,则输出1;而其他三种情况下,输出都是0。
如果输入位中有一位是0,则不需要检查其他输入位即可快速得到结果0,这个特性将会在后面用到。
6
3.或(OR)
OR运算符是二元操作符:它有两个输入。
如果两个输入都是0,则输出0;而其他三种情况下,输出都是1。(与AND类似)
如果输入位中有一位是1,则不需要检查其他输入位即可快速得到结果1,这个特性将会在后面用到。
4.异或(XOR)
XOR运算符是二元操作符:它有两个输入。
如果两个输入相同(同为1或同为0),则输出为0;输入不同时,输出为1。
7
Figure 4.1 位层次上的逻辑运算
8
模式层次上的逻辑运算
相同的四种逻辑运算(非、与、或、异或)可以被应用到n位模式。
Figure 4.2 应用于位模式的逻辑运算符
9
Example 4.3
用NOT运算符来计算位模
Example 4.4
用AND来计算位模00101010.
Example 4.5
用OR来计算位模00101110.
10
Example 4.6
用XOR来计算位模00101110.
应用
1.求反
NOT运算符的唯一应用就是对整个模式求反
2.使指定的位复位(变0)
AND运算符的一个应用就是把一个位模式的指定位复位,通常我们将第二个输入称为掩码。掩码的0位置0(E4.7)
11
3.对指定位置位(变1)
OR运算符的一个应用就是把一个位模式的指定位置位,第二个输入也是掩码,类似AND,只不过掩码的1位对第一个输入中对应的位置1,0位保持不变。(E4.8)
4.使指定的位反转(1变0,0变1)
XOR运算符的一个应用就是把一个位模式的指定位反转,第二个输入称为掩码,掩码的1位对第一个输入对应的位进行反转,0位保持不变。(E4.9)
12
例:设想一个水厂使用8台水泵给一城市供水。水泵的状态(开或关)就可以用8位(二进制)模式来描述。现在假设将6号泵打开,怎样的掩码能描述这种情况。
解:设8台水泵的状态(开或关)用8个逻辑变量表示为A8A7A6A5A4A3A2A1。则对应的置位掩码应该是8位模式,由掩码构成规则可得:
13
4-2 移位运算
SHIFT OPERATIONS
基本概念:
移位运算移动模式中的位,改变位的位置
它们只能向左或者向右移
我们将移位运算分为两大类:
逻辑移位运算和算术移位运算
14
逻辑移位运算
逻辑移位
Figure 4.3 逻辑移位运算
逻辑右(左)移运算把每一位向右(左)移动一个位置,在n位模式下,最右(左)位丢失,最左(右)位填0.(E4.10)
1.15
循环移位(旋转运算)
Figure 4.4 循环移位运算
循环右(左)移运算把每一位向右(左)移动一个位置,在n位模式下,最右(左)位被回