计算机科学导论课后习题参考答案-1-第4章位运算一、复习题1.逻辑运算和算术运算有什么区别?答:逻辑运算是把二进制位看成逻辑值(真或假)进行的运算,包括或运算、与运算、非运算和异或运算。算术运算是把二进制位看成数值(整数、浮点数)进行的运算,包括加、减、乘、除运算。2.乘法与加法有什么关系?请举例说明。答:乘法相当于连加。例如:3*2=2+2+2。3.在最后的相加中,最左边一列是怎样进位的?答:如果最左边的列相加后还有进位,则舍弃进位。4.N(位分配单位)可以等于1吗?为什么?答:不可以,因为在N位分配单位中,最左边的数用来表示正负。当N=1时,不能表示任何数。5.解释“溢出”这个词。答:是指试图把一个数存储在超出指定分配单元所允许的范围时发生的错误。6.在浮点数的加法运算中,怎么样调整指数不同的数的表示?答:移动小数点,使两者指数相同。一般调整小指数为大指数。7.一元运算和二元运算有何不同?答:一元运算输入一个位模式输出一个位模式。二元运算输入二个位模式输出一个位模式。8.二元逻辑有哪些?答:或运算、与运算和异或运算。9.什么是真值表?答:所有输入组合与相应的输出值的对照表。10.非运算符的作用是什么?答:有1个输入操作数,对输入的位模式逐位取反,即将0变为1,将1变为0。11.与运算符的结果何时为真?答:当两个操作数同时为真时,与运算的结果为真。12.或运算符的结果何时为真?答:当两个操作数不全为假时,或运算的结果为真。13.异或运算符的结果何时为真?答:当两个操作数不相同时,异或运算符的结果为真。14.何谓与运算符的固有规则?答:任何数与0进行与运算的结果为0。15.何谓或运算符的固有规则?答:任何数与1进行或运算的结果为1。16.何谓异或运算符的固有规则?计算机科学导论课后习题参考答案-2-答:如果一个输入位为1,则运算结果就是另一个输入的相对应位取反。17.何种二元运算可以用来置位?掩码应该用什么位模式?答:或运算。对于目标位模式中需要置1的位,掩码的相应位设为1。对于目标位模式中需要保持不变的位,掩码的相应位设为0。18.何种二元运算可以用来复位?掩码应该用什么位模式?答:与运算。对于目标位模式中需要置1的位,掩码的相应位设为0。对于目标位模式中需要保持不变的位,掩码的相应位设为1。19.何种二元运算可以用来反转?掩码应该用什么位模式?答:异或运算。对于目标位模式中需要反转的位,掩码的相应位设为1。对于目标位模式中需要保持不变的位,掩码的相应位设为0。二、选择题20~25C、D、C、C、C、B26~30D、B、A、C、D31~35C、D、C、B、A36~39A、C、A、B三、练习题40.用8位分配单元,首先把下列数转换成二进制补码,然后运算,再把结果转成十进制。A.19+23解析:00010011(19)+00010111(23)00101010(42)B.19-23解析:00010011(19)+11101001(-23)11111100(-4)C.19+23解析:11101101(-19)+00010111(23)00000100(4)D.19-23解析:11101101(-19)+11101001(-23)11010110(-42)41.用16位分配单元,先把下列数转换成二进制补码,然后运算,再把结果转化为十制A.161+1023计算机科学导论课后习题参考答案-3-0000000010100001(161)+0000001111111111(1023)0000010010100000(1184)B.161-1023000000001000001(161)+1111110000000001(-1023)------------------------1111110010100010(-862)C.161+10231111111101011111(-161)+0000001111111111(1023)0000001101011110(862)D.161-10231111111101011111(-161)+1111110000000001(-1023)1111101101100000(-1184)42如果数与结果都用8位二进制补码表示,下列哪个运算会溢出A.11000010+00111111B.00000010+00111111C.11000010+11111111D.00000010+11111111答:均无溢出。43.如果数和结果都用8位二进制补码表示,下列哪个运算会溢出.A.32+105(溢出)B.32-105(没有溢出)C.-32+105(没有溢出)D.-32-105(溢出)44.假设数皆以16位二进制补码表示法来储存,求出以下运算结果。结果以16进制表示。A.x012A+x0E270000000100101010+0000111000100111———————————000011110101000145.计算下列浮点运算结果。先将每个数转为二进制计算,再将结果转成十进制。计算机科学导论课后习题参考答案-4-47.下列哪种情况不会发生溢出?证明你的观点。A.两个正整数相加B.正整数加负整数C.负整数减正整数D.两个负整数相减答:48.求下列计算结果。A.NOTx99=x66B.NOTxFF=x00计算机科学导论课后习题参考答案-5-C.NOTx00=xFFD.NOTx01=XFE49,求下列计算结果。A.x99ANDx99=x99B.x99ANDx00=x00C.x99ANDxFF=x99D.xFFANDxFF=Xff50.求下列计算结果。A.x99ORx99=x99B.x99ORx00=x99C.x99ORxFF=xFFD.xFFORxFF=xFF51.求下列运算结果。A.x99XORx99=x00B.x99XORx00=x99C.x99XORxFF=x66D.xFFXORxFF=x0052.求下列运算结果。A.NOT(x99ORx99)10011001OR1001100110011001NOT01100110(x66)B.x99OR(NOTx00)00000000NOT11111111OR1001100111111111(XFF)C.(x99ANDx33)OR(x00ANDxFF)=x11ORx00=x11D.(x99ORx33)AND(x00ORxFF)=xBBANDxFF=xBB53.要将一个位模式的最左4位复位(置0),求掩码和运算。答:掩码:最左4位置0,其它位置1(00001111)。运用与运算。54.要将一个位模式的最右4位置位(置1),求掩码和运算。答:掩码:最右4位置1,其它位置0(00001111)。运用或运算。55.要将一个位模式的最右3位和最左2位反转,求掩码和运算。答:掩码:最右3位和最左2位置位1,其它位置位0(11000111)。运用异或运算。56.要将一个位模式的最左3位和最右2位复位,求掩码和运算。答:掩码:最左3位和最右2位置位0,其它位置位1(00011100)。运用与运算。计算机科学导论课后习题参考答案-6-57.用移位运算将一个无符号数除以4。分析:01011010右移两位00010110具体可见书51页例1658.用移位运算将一个无符号数乘以8。分析:01011010左移三位11010000具体可见书51页例1659.综合使用逻辑和移位运算求取一个无符号数的第4、5位分析:具体可见书52页例17。