深入理解计算机系统[习题]_第二章_信息的表示和处理

题目1

深入理解计算机系统[习题]_第二章_信息的表示和处理_第1张图片
[可以看到这个练习中,从 [ 1011 ] 扩展到 [ 11011 ] 再扩展到 [ 111011 ] ,它们都是 -5 的补码表示。可见有符号数位扩展时候,左边扩展符号位,不会对它的数值有影响。]
[而且也验证了,对于无符号数来说,每一个数只有一种位向量表示,而对于有符号数(补码表示),同样都是-5,就有很多种表示,甚至是无限种,只要扩展符号位就可以。 -2019/5/6]

题目2

深入理解计算机系统[习题]_第二章_信息的表示和处理_第2张图片
深入理解计算机系统[习题]_第二章_信息的表示和处理_第3张图片

题目3

深入理解计算机系统[习题]_第二章_信息的表示和处理_第4张图片
A: 当 s 比 t 短的时候,该函数会返回1
B:由于 strlen 被定义为产生一个无符号的结果,差和比较都采用无符号运算来计算。当 s 比 t 短的时候,strlen(s) - strlen(t)的差会为负,但是变成了一个很大的无符号数,大于0。
C:改为 return strlen(s) > strlen(t);

[ 举个负数变成了很大的无符号数的例子: 3 - 4 ===> [0011] - [0100] = [1111] ,这个[1111] 视为有符号数(补码),则为-1,结果正确了;视为无符号数,则为15,结果就错了。]

题目4

深入理解计算机系统[习题]_第二章_信息的表示和处理_第5张图片
[ 十六进制D的位模式为 [1101] 所以十进制就是13,是无符号数,所以求反就是用(2的w次方 - x),16 - 13 = 3 ]

题目5

深入理解计算机系统[习题]_第二章_信息的表示和处理_第6张图片
[5位位向量作为补码,能够表示的范围是-16~15,所以当十进制计算的结果小于-16,就加32(2的5次方),]

题目6

深入理解计算机系统[习题]_第二章_信息的表示和处理_第7张图片
[为什么?可能有人在后面抓了一下我的痒痒肉吧 :-)]

补码相加会形成阿贝尔群,因此表达式(x + y)- x 总是得到y,无论加法是否溢出,而(x + y)- y 总是会得到x。

[模数相加会形成阿贝尔群 ,它是可交换的和可结合的。
模数加法即对任何两个数据相加求模的运算,如任何对10的模数加法,如9 + 9 = 8。
补码相加就是对2的w次方的模数相加,如 9 + 12 = 5,所以补码相加模数相加,即一定形成阿贝尔群,即一定可交换可结合。 ]

题目7

深入理解计算机系统[习题]_第二章_信息的表示和处理_第8张图片

题目8

深入理解计算机系统[习题]_第二章_信息的表示和处理_第9张图片

题目9

深入理解计算机系统[习题]_第二章_信息的表示和处理_第10张图片
深入理解计算机系统[习题]_第二章_信息的表示和处理_第11张图片

题目10

深入理解计算机系统[习题]_第二章_信息的表示和处理_第12张图片

题目11

深入理解计算机系统[习题]_第二章_信息的表示和处理_第13张图片
深入理解计算机系统[习题]_第二章_信息的表示和处理_第14张图片

题目12

深入理解计算机系统[习题]_第二章_信息的表示和处理_第15张图片
深入理解计算机系统[习题]_第二章_信息的表示和处理_第16张图片

题目13

深入理解计算机系统[习题]_第二章_信息的表示和处理_第17张图片
深入理解计算机系统[习题]_第二章_信息的表示和处理_第18张图片

题目14

深入理解计算机系统[习题]_第二章_信息的表示和处理_第19张图片
深入理解计算机系统[习题]_第二章_信息的表示和处理_第20张图片

题目15

深入理解计算机系统[习题]_第二章_信息的表示和处理_第21张图片
深入理解计算机系统[习题]_第二章_信息的表示和处理_第22张图片

题目16

深入理解计算机系统[习题]_第二章_信息的表示和处理_第23张图片
深入理解计算机系统[习题]_第二章_信息的表示和处理_第24张图片

题目17

深入理解计算机系统[习题]_第二章_信息的表示和处理_第25张图片
深入理解计算机系统[习题]_第二章_信息的表示和处理_第26张图片

题目18

深入理解计算机系统[习题]_第二章_信息的表示和处理_第27张图片
深入理解计算机系统[习题]_第二章_信息的表示和处理_第28张图片

题目19

函数 tmult_ok 是用来判断两个数相乘有没有溢出。
在这里插入图片描述
深入理解计算机系统[习题]_第二章_信息的表示和处理_第29张图片

你可能感兴趣的:(计算机系统)