资源描述:
《计算机科学导论第四章数据运算》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章数据运算4.1逻辑运算4.2移位运算4.3算术运算本章要求掌握数据的三类运算;理解逻辑和算术运算的一些应用。4.1逻辑运算几个基本概念:1.逻辑:2.逻辑状态:3.逻辑变量:4.逻辑函数:指事物的规律性和因果关系。完全对立、截然相反的二种状态,如:好坏、美丑、真假、有无、高低、开关等。代表逻辑状态的符号,取值0和1。输出是输入条件的函数,有一定的因果关系。逻辑运算:是指对因果关系进行分析的一种运算。逻辑运算的结果并不表示数值的大小,而是表示的一种逻辑概念。若成立用真或1表示,若不成立用假或0表示。自然界中能表示两种不同状态的方法有很多种:如果定义了一个位
2、作为逻辑值,就可以对它进行逻辑运算了,逻辑运算可以接收1到2个位来生成1个位。如果逻辑运算作用在1个输入位上,就叫做一元运算,如果作用在2个位上,就叫做二元运算。二进制数的逻辑运算有“与”、“或”、“非”、“异或”4种。一、位层次上的逻辑运算1、非(NOT)非运算实现逻辑否定,即进行求反运算,用符号NOT表示。其实质意义就是取反。一元运算符2、与(AND)与运算又称逻辑乘,有符号“·”,或“∧”来表示,运算规则如下:二元运算符0·0=0,0·1=0,1·0=0,1·1=10·A=0,1·A=A3、或(OR)或运算又称逻辑加,有符号“+”,或“∨”来表示,运算规
3、则如下:二元运算符0+0=0,0+1=1,1+0=1,1+1=10+A=A,1+A=14、异或(XOR)异或运算又称逻辑加,有符号“⊕”,运算规则如下:二元运算符0⊕0=0,0⊕1=1,1⊕0=1,1⊕1=0异或定义:AB=AB+AB0⊕A=A,1⊕A=A二、模式层次上的逻辑运算相同的四种逻辑运算(非、与、或、异或)可以被应用到n位模式。非运算:例4.3与运算:例4.4或运算:例4.5异或运算:例4.6三、4种逻辑运算的应用逻辑运算可以用于修改位模式。即可以将指定的位复位、置位或反转。1、求反非运算符的唯一的作用就是对整个位模式求反。2、使指定的位复位与运
4、算符的一个作用就是把位模式的指定位复位(置0)。为此,需要一个同样长度的掩码。创建复位掩码的规则总结如下:对于目标位模式中需要置0的位,掩码的相应位设为0;对于目标位模式中需要保持不变的位,掩码的相应位设为1。例:设想一个水厂使用8台水泵给一城市供水。水泵的状态(开或关)就可以用8位(二进制)模式来描述。现在假设将7号泵关闭,怎样的掩码能描述这种情况。解:设8台水泵的状态(开或关)用8个逻辑变量表示为A8A7A6A5A4A3A2A1。则对应的复位掩码应该是8位模式,由掩码构成规则可得:10111111A8A7A6A5A4A3A2A1掩码A80A6A5A4A3A
5、2A1AND3、使指定的位置位或运算符的一个的作用就是把位模式的指定位置位(置1)。为此,需要一个同样长度的掩码。例4.8创建置位掩码的规则总结如下:对于目标位模式中需要置1的位,掩码的相应位设为1;对于目标位模式中需要保持不变的位,掩码的相应位设为0。例:设想一个水厂使用8台水泵给一城市供水。水泵的状态(开或关)就可以用8位(二进制)模式来描述。现在假设将6号泵打开,怎样的掩码能描述这种情况。解:设8台水泵的状态(开或关)用8个逻辑变量表示为A8A7A6A5A4A3A2A1。则对应的置位掩码应该是8位模式,由掩码构成规则可得:00100000A8A7A6A5
6、A4A3A2A1掩码A8A71A5A4A3A2A1OR4、使指定的位反转异或运算符的一个的作用就是把位模式指定反转。为此,需要一个同样长度的掩码。例4.9创建反转掩码的规则总结如下:对于目标位模式中需要反转的位,掩码的相应位设为1;对于目标位模式中需要保持不变的位,掩码的相应位设为0。4.2移位运算可以分为两大类:逻辑移位和算术移位。一、逻辑移位运算逻辑移位运算应用于不带符号位的数的模式。1、逻辑移位逻辑右移逻辑左移例4.102、循环移位循环右移循环左移例4.11二、算术移位运算算术移位运算应用于带符号位的数的模式(补码形式)。1、算术右移(对整数除以2)算术
7、右移保留符号位,同时把它复制,放入相邻的右边的位中,因此符号被保存。2、算术左移(对整数乘以2)例4.124.134.144.15算术左移丢弃符号位,接受它的右边的位作为符号位。如果新的符号位与原先的相同,那么运算成功,否则发生上溢或下溢,结果非法。4.3算术运算一、二进制数的算术运算加法运算规则:0+0=0,0+1=1,1+0=1,1+1=0减法运算规则:0-0=0,0-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运算规则例:10111+10011=101010例:10111-
8、10011=10010111+)100