计算机科学导论课后习题参考答案
第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.何谓异或运算符的固有规则?
- 1 -
计算机科学导论课后习题参考答案
答:如果一个输入位为1,则运算结果就是另一个输入的相对应位取反。 17.何种二元运算可以用来置位?掩码应该用什么位模式?
答:或运算。对于目标位模式中需要置1的位,掩码的相应位设为1。对于目标位模式中需要保持不变的位,掩码的相应位设为0。
18.何种二元运算可以用来复位?掩码应该用什么位模式?
答:与运算。对于目标位模式中需要置1的位,掩码的相应位设为0。对于目标位模式中需要保持不变的位,掩码的相应位设为1。
19.何种二元运算可以用来反转?掩码应该用什么位模式?
答:异或运算。对于目标位模式中需要反转的位,掩码的相应位设为1。对于目标位模式中需要保持不变的位,掩码的相应位设为0。
二、选择题
20~25 C、D、C、C、C、B 31~35 C、D、C、B、A
26~30 D、B、A、C、D 36~39 A、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
- 2 -
计算机科学导论课后习题参考答案
0000000010100001(161) +0000001111111111(1023) 0000010010100000(1184)
B.161-1023
000000001000001(161)
+1111110000000001(-1023)
------------------------ 1111110010100010(-862)
C.161+1023
1111111101011111(-161) + 0000001111111111(1023) 0000001101011110(862)
D.161-1023
1111111101011111(-161)
+ 1111110000000001(-1023)
1111101101100000(-1184)
42 如果数与结果都用8位二进制补码表示,下列哪个运算会溢出
A.11000010+00111111 C.11000010+11111111
B.00000010+00111111 D.00000010+11111111
答:均无溢出。
43.如果数和结果都用8位二进制补码表示,下列哪个运算会溢出.
A.32+105(溢出)
B.32-105(没有溢出) D.-32-105(溢出)
C.-32+105(没有溢出)
44.假设数皆以16位二进制补码表示法来储存,求出以下运算结果。结果以16进制表示。
A.x012A+x0E27
0000 0001 0010 1010 +0000 1110 0010 0111 ——————————— 0000 1111 0101 0001
45.计算下列浮点运算结果。先将每个数转为二进制计算,再将结果转成十进制。
- 3 -