首页 > 代码库 > 《计算机科学导论》第四章课后作业解答(个人版)
《计算机科学导论》第四章课后作业解答(个人版)
1.逻辑运算和算术运算有什么区别?
算术运算就是平常我们所用的加减乘除,而逻辑运算是在二进制位上进行非、与、或和异或运算,逻辑运算中的二进制位只有两种状态:0(假)和1(真),结果中的二进制位也只有这两种状态。
4.解释“溢出”这个词。
当我们进行计算机数字中的算术运算时,要记住每个数字和结果应该在分配的二进制位的定义范围之内。若计算结果无法用被分配的二进制位数来正确表示时,该结果出现溢出。
5.在浮点数的加法运算中,怎样调整指数不同的数的表示方法?
在运算中先以某个数的指数为标准,通过去规范化使其它的数的指数与该指数相同,相加后再次规范化即可。
7.二元逻辑运算有哪些?
与、或、异或。
8.什么是真值表?
真值表定义了对于每一种可能的输入或输出值。
13.说出本章讨论的AND运算符的一个重要特性。
若输入中有一位是0,则不需要检查其他输入的相应的位,便可迅速得到结果为0.
14.说出本章讨论的OR运算符的一个重要特性。
若输入中有一位是1,则不需要检查其他输入的相应的位,便可迅速得到结果为1.
15.说出本章讨论的XOR运算符的一个重要特性。
若输入中有一位是1,那结果就是与其他输入中相应位相反。
16.哪种二元运算可以用来置位?掩码应该用什么位模式?
OR运算。掩码的位模式中的1用于置位,而0保持相应的位状态不变。
17.哪种二元运算可以用来复位?掩码应该用什么位模式?
AND运算。掩码的位模式中的0用于复位,而1保持相应的位状态不变。
18.哪算二元运算可以用来反转?掩码应该用什么位模式?
XOR运算。掩码的位模式中的1用于反转,而0保持相应的位状态不变。
19.逻辑和算术移位间的区别是什么?
逻辑移位用于不带符号位的数的模式,右移把每一位向右移动一个位置,最右位被丢弃,最左位填0;左移把每一位向左移动一个位置,最左位被丢弃,最右边填0.
算术移位用于二进制补码格式的位模式中,右移保留符号位,同时复制该符号位,放入相邻的右边的位中;左移丢弃符号位,接受它的右边的位作为符号位。
20._______是算术运算。 c.减法
21._______是逻辑运算。 d.异或、一元非、二元与
22._______描述整数的方法是计算机存储中最常用的方法。 c.二进制补码
23.二进制补码加法中,如果是最左边一列相加后产生进位,则________. c.舍弃
24.一个8位分配单元,用二进制补码能表示的最小十进制数是________. c.-128
25.一个8位分配单元,用二进制补码能表示的最大十进制数是________. c.127
26.一个4位分配单元,用二进制补码表示,1加7能得到________. d.-8
27.一个4位分配单元,用二进制补码表示,5加5得到________. b.-6
28.如果在余127码中的指数表示为二进制1000 0101,那么十进制中的指数是_______. a.6
29.两个数相加,一个指数值为7,另一个指数值为9,则需要将较小数的小数点________. b.左移两位
30.二元运算符_______取两个输入产生一个输出。 d.AND、XOR、OR
36.可以使用一种叫做_______的位模式修改另一个位模式。 a.掩码
37.要反转一个位模式全部的位,使用全1掩码,对位模式和掩码进行_______运算。 b.XOR
38.要复位(置0)一个位模式全部的位,对位模式和掩码进行_______运算。 a.AND
39.要置位(置1)一个位模式全部的位,对位模式和掩码进行_______运算。 b.OR
40.显示下列运算的结果。
a.NOT(99)16 → NOT(1001 1001)2 → (0110 0110)2
b.NOT(FF)16 → NOT(1111 1111)2 → (0000 0000)2
c.NOT(00)16 → NOT(0000 0000)2 → (1111 1111)2
d.NOT(01)16 → NOT(0000 0001)2 → (1111 1110)2
41.求下列运算结果。
a.(99)16 AND (99)16 → (1001 1001)2 AND (1001 1001)2 → (1001 1001)2
b.(99)16 AND (00)16 → (1001 1001)2 AND (0000 0000)2 → (0000 0000)2
c.(99)16 AND (FF)16 → (1001 1001)2 AND (1111 1111)2 → (1001 1001)2
d.(FF)16 AND (FF)16 → (1111 1111)2 AND (1111 1111)2 → (1111 1111)2
42.求下列运算结果。
a.(99)16 OR (99)16 → (1001 1001)2 OR (1001 1001)2 → (1001 1001)2
b.(99)16 OR (00)16 → (1001 1001)2 OR (0000 0000)2 → (1001 1001)2
c.(99)16 OR (FF)16 → (1001 1001)2 OR (1111 1111)2 → (1111 1111)2
d.(FF)16 OR (FF)16 → (1111 1111)2 OR (1111 1111)2 → (1111 1111)2
43.求下列运算结果。
a.NOT [(99)16 OR (99)16] → NOT (1001 1001)2 → (0110 0110)2
b.(99)16 OR [NOT (00)16] → (1001 1001)2 OR (1111 1111)2 → (1111 1111)2
c.[(99)16 AND (33)16] OR [(00)16 AND (FF)16] → [(1001 1001)2 AND (0011 0011)2] OR [(0000 0000)2 AND (1111 1111)2 ]
→ (0001 0001)2 OR (0000 0000)2
→ (0001 0001)2
d.[(99)16 OR (33)16] AND [(00)16 OR (FF)16] → [(1001 1001)2 OR (0011 0011)2] AND [(0000 0000)2 OR (1111 1111)2 ]
→ (1011 1011)2 AND (1111 1111)2
→ (1011 1011)2
51.用8位分配单元,首先把下列数转换成二进制补码,然后运算,再把结果转成十进制。
a.19 + 23 → (0001 0011)2 + (0001 0111)2 = (0010 1010)2 = 42
b.19 - 23 → (0001 0011)2 - (0001 0111)2 = (0001 0011)2 + (1110 1001)2 = (1111 1100)2 = -4
c.-19 + 23 → (1110 1101)2 + (0001 0111)2 = (0000 0100)2 = 4
d.-19 - 23 → -(0001 0011)2 - (0001 0111)2 = (1110 1101)2 + (1110 1001)2 = (1101 0110)2 = -42
52.用16位分配单元,先把下列数转换成二进制补码,然后运算,再把结果转成十进制。
a.161 + 1023 → (0000 0000 1010 0001)2 + (0000 0011 1111 1111)2 = (0000 0100 1010 0000)2 = 1184
b.161 - 1023 → (0000 0000 1010 0001)2 + (1111 1100 0000 0001)2 = (1111 1100 1010 0010)2 = -862
c.-161 + 1023 → (1111 1111 0101 1111)2 + (0000 0011 1111 1111)2 = (0000 0011 0101 1110)2 = 862
d. -161 - 1023 → (1111 1111 0101 1111)2 + (1111 1100 0000 0001)2 = (1111 1011 0110 0000)2 = -1184
53.如果数字都用8位二进制补码表示,下列哪个运算会溢出? c. 1100 0010 + 1111 1111
54.如果数字和结果都用8位二进制补码表示,不通过实际的计算,能说出下列哪个运算会溢出吗? a. 32 + 105 和 d. -32 - 105
56.使用一个8位的分配单元,首先把下列每个数字转化为符号加绝对值表示法,进行运算,然后把结果转化为十进制。
a.19 + 23 → (0 001 0011)2 + (0 001 0111)2 = (0 010 1010)2 = 42
b.19 - 23 → (0 001 0011)2 + (1 001 0111)2 = (0 001 0011)2 + (1 110 1001)2 = (1 111 1100)2 = (1 000 0100)2 = -4
c.-19 + 23 → (1 001 0011)2 + (0 001 0111)2 = (0 110 1101)2 + (0 001 0111)2 = (0 000 0100)2 = 4
d.-19 - 23 → (1 001 0011)2 + (1 001 0111)2 = (1 010 1010)2 = -42
57.计算下列使用IEEE_127的浮点数运算结果。
a. 34.75 + 23.125
34.75 → (100010.11)2 → (1.0001011)2 × 25 → 0 1000 0100 10001 0110 0000 0000 0000 000
23.125 → (10111.001)2 → (1.0111001)2 × 24 → 0 1000 0011 10111 0010 0000 0000 0000 000
→ 0 1000 0100 01011 1001 0000 0000 0000 000
相加后 0 1000 0100 11100 1111 0000 0000 0000 000
规范化 0 1000 0100 1100 1111 0000 0000 0000 000
即 (1.11001111) × 25 = 111001.111 = 57.875
b. -12.625 + 451.00
-12.625 → -(1100.101)2 → -(1.100101)2 × 23 → 1 1000 0010 11001 0100 0000 0000 0000 000
→ 1 1000 0111 00000 1100 1010 0000 0000 000
→ 1 1000 0111 11111 0011 0110 0000 0000 000
451.00 → (111000011)2 → (1.11000011)2 × 28 → 0 1000 0111 11100 0011 0000 0000 0000 000
相加后 0 1000 0111 11011 0110 0110 0000 0000 000
规范化 0 1000 0111 1011 0110 0110 0000 0000 000
即 (1.101101100110) × 28 = 110110110.0110 = 438.375
c. 33.1875 - 0.4375
33.1875 → (100001.0011)2 → (1.000010011)2 × 25 → 0 1000 0100 10000 1001 1000 0000 0000 000
-0.4375 → -(0.0111)2 → -(1.11)2 × 2-2 → 1 0111 1101 11100 0000 0000 0000 0000 000
→ 1 1000 0100 00000 0011 1000 0000 0000 000
→ 1 1000 0100 11111 1100 1000 0000 0000 000
相加后 0 1000 0100 10000 0110 0000 0000 0000 000
规范化 0 1000 0100 0000 0110 0000 0000 0000 000
即 (1.0000011) × 25 = 100000.11 = 32.75
d. -344.3125 - 123.5625
-344.3125 → -(101011000.0101)2 → -(1.010110000101)2 × 28 → 1 1000 0111 10101 1000 0101 0000 0000 000
-123.5625 → -(1111011.1001)2 → -(1.1110111001)2 × 26 → 1 1000 0101 11110 1110 0100 0000 0000 000
→1 1000 0111 00111 1011 1001 0000 0000 000
相加后 1 1000 0111 11101 0011 1110 0000 0000 000
规范化 1 1000 0111 1101 0011 1110 0000 0000 000
即 -(1.11010011111) × 28 = -111010011.111 = -467.875
58.下列哪种情况永不发生溢出?证明你的观点。 b.正整数加负整数 和 d.两个负整数相减
59.把一个整数加到它的反码上的结果是什么? 该数的位模式上全部为1
(完)
《计算机科学导论》第四章课后作业解答(个人版)