科学计算机中溢出指,《计算机科学导论》第四章课后作业解答(个人版)

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

(完)

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值