计算机组成原理第三章作业2
18.
某机字长32位,1位符号位,31位表示尾数。若采用原码,用定点表示法表示小数,则最大正小数为 1 − 2 ( − 31 ) 1-2^(-31) 1−2(−31)
18.解释
这里的1是符号位的意思
19.
如果用0舍1入进行舍入处理,则0.0111舍去最后一位后,变成0.100
19.解析
20.
n位定点整数补码表示的最大值是 2 ( n − 1 ) − 1 2^(n-1)-1 2(n−1)−1
20.解析
符号位为0,其余全为1
21.
尾数采用补码的浮点数运算中,出现以下哪种情况时要进行规格化处理?符号位与最高数值位不同。
21.解析
首先我们应该知道什么是浮点数的规格化数,为了保证数据精度,尾数通常用规格化形式表示,当R=2,且M!=0,M的绝对值应该大于或等于十进制数0.5。
若M是非负数由于[0.5]补码= 0.1xxxx
[
0.5
]
补
≤
[
M
]
补
≤
[
1
]
补
[0.5]补\leq [M]补\leq[1]补
[0.5]补≤[M]补≤[1]补
若M是负数,[-0.5]补码=1.100000,[-1]补=1.000000
[
−
1
]
补
≤
[
M
]
补
≤
[
−
0.5
]
补
[-1]补\leq [M]补\leq[-0.5]补
[−1]补≤[M]补≤[−0.5]补
即M=1.0xxxxxxx
这种基于补码的区间适用于补码表示的浮点数,因为补码需要处理符号和数值的相互关系。所以若浮点数的阶码和尾数都用补码表示,则判断运算结果是否为规格化数的方法是数符与尾数小数点后第一位数字相异为规格化数。
22.
假设下列字符码中有奇偶校验码,但没有数据错误,采用偶校验的字符码是11001001
22.解析
奇偶校验码:
实现原理:码距从1增加到2。若编码中有奇数个二进制位的值出错了,由1变成0,或由0变成1,这个码就会变成非法编码。实现的具体方法通常是为一个字节补充一个二进制位,称为校验位,使字节的8位和该校验位含有1值的个数为奇数或者偶数。使用奇数个1进行校验时,就叫奇校验,使用偶数个1进行校验时,就叫偶校验。所以这道题只要数1的个数就可以了。
23.
无符号数,下列数中最大的数是(199119991)
23.解析
A转化为10进制是305
B转化为10进制是151
C转化成10进制是152
D是152
24.
n+1位的定点整数补码表示的最大值是 2 ( n − 1 ) − 1 2^(n-1)-1 2(n−1)−1
24.解析
符号位为正,其余全1
25.
机器字80H,若表示的真值是-127,则它是反码
25.解析
首先看到H可以知道80H为16进制,转化为10进制就是10000000,这个是-127的反码
26.
浮点数的表示精度取决于尾数的位数
26.解析
浮点数的阶码的位数决定数的表示范围,尾数的尾数决定数的有效精度。
27.
CPU的组成不包含存储器
27.解析
课本P5,CPU包括运算器和控制器两部分,用多个寄存器来承担数据的中央处理者。
28.
中央处理器(CPU)是指运算器,控制器和Cache
28.解析
见27.解析
29.
假设下列字符码中有奇偶校验,但没有数据错误,采用偶校验的字符码是11001001
29.解析
奇偶校验码:
实现原理:码距从1增加到2。若编码中有奇数个二进制位的值出错了,由1变成0,或由0变成1,这个码就会变成非法编码。实现的具体方法通常是为一个字节补充一个二进制位,称为校验位,使字节的8位和该校验位含有1值的个数为奇数或者偶数。使用奇数个1进行校验时,就叫奇校验,使用偶数个1进行校验时,就叫偶校验。所以这道题只要数1的个数就可以了。
30.
若浮点数的阶码和尾数都用补码表示,则判断运算结果是否为规格化数的方法是数符与尾数小数点后第一位数字相异为规格化数。
30.解析
首先我们应该知道什么是浮点数的规格化数,为了保证数据精度,尾数通常用规格化形式表示,当R=2,且M!=0,M的绝对值应该大于或等于十进制数0.5。
若M是非负数由于[0.5]补码= 0.1xxxx
[
0.5
]
补
≤
[
M
]
补
≤
[
1
]
补
[0.5]补\leq [M]补\leq[1]补
[0.5]补≤[M]补≤[1]补
若M是负数,[-0.5]补码=1.100000,[-1]补=1.000000
[
−
1
]
补
≤
[
M
]
补
≤
[
−
0.5
]
补
[-1]补\leq [M]补\leq[-0.5]补
[−1]补≤[M]补≤[−0.5]补
即M=1.0xxxxxxx
这种基于补码的区间适用于补码表示的浮点数,因为补码需要处理符号和数值的相互关系。所以若浮点数的阶码和尾数都用补码表示,则判断运算结果是否为规格化数的方法是数符与尾数小数点后第一位数字相异为规格化数。
填空题
1.
将信息10101111的低位补充偶检验位,由此得到的偶检验码为101011110
1.解释
偶校验的规则是:在所有的 1 的个数为奇数时,校验位为 1;如果 1 的个数为偶数,校验位为 0,以确保最终的 1 的个数为偶数。 这里10101111中1的个数已经是偶数了,所以在末尾直接加0就可以了。
2.
已知X=0.1011,Y=0.0111.,若采用双符号位补码进行加法运算,则其运算结果双符号位位01,属于正溢出。
2.解释
双符号位补码是用两个符号位来表示符号,其中,若两个符号位均为 00 表示正数,11 表示负数,01 或 10 视为溢出。 01代表正溢出,10代表负溢出。
3.
计算机中浮点数表示方法的规格化主要作用是:提高数据的表示精度和使数据的表示唯一。
3.解释
略
4.
机器数中,零的表示形式是唯一的编码是补码和移码。
4.解释
移码和补码唯一的区别就是符号位不同。
5.
将信息01011011的低位补充偶校验位,由此得到的偶校验码为010110111,若采用奇校验码,则校验码为010110110。
5.解释
偶校验的规则是:如果 1 的个数是奇数,需要补充一个 1,使得 1 的总数变为偶数。如果 1 的个数是偶数,则补充一个 0,保持 1 的个数为偶数。 奇校验的规则是:如果 1 的个数是偶数,需要补充一个 1,使得 1 的总数变为奇数。如果 1 的个数是奇数,则补充一个 0,保持 1 的个数为奇数。
6.
已知X=-0.100111,则x原=1.100111,x补=1.011001,x反=1.011000,x移=0.011001
6.解释
原码略,符号位为1注意一下就行,负数反码就是除符号位外其他位全部取反,补码就是反码再加1,移码就是改变了补码的符号位
7.
采用双符号位的方法进行溢出检测时,若运算结果中两个符号位不同,则表明发生了溢出,若双符号位为01,则代表发生了正溢出,若双符号位为10则代表发生了负溢出。
7.解释
略
8.
已知X=-0.010111,则X原=1.010111,X补=1.101001,X反=1.101000
8.解释
略
9.
浮点数补码表示为4A0H,前4位为阶码,后8位为尾数,则它所代表的十进制真值为0.1015625 :
9.解释
浮点数的值公式为:
浮点数 = 尾数 × 2^(阶码)
4A0H = 010010100000B ,阶码为0100,也就是4,尾数为 1010000。 尾数一般需要加上一个隐含的1,即尾数为:1.10100000(二进制) 浮点数 = 1.625 × 2^(-4) = 1.625 × 1/16 = 0.1015625
10.
对于机器二进制数10000000,若它表示的真值为-127,则它为反码,若他表示的真值为-128,则它为补码
10.解释
略
11.
将信息1011011的高位补充奇检验位,由此得到的奇验证码为01011011
11.解释
最后得到的奇验证码中1的个数要是奇数个
12.
对10位补码定点整数(符号位1位),它所能表示的最小数的二进制形式位1000000000,对应的十进制为-512;表示的最大数的二进制形式为0111111111,对应的十进制为511.
12.解释
-512的二进制为10 0000 0000,其反码为 11 1111 1111, 加1后为10 0000 0000。n位有符号定点整数,表示的范围是-(2^(n-1))到2(n-1)-1。
13.
定点除法运算通常有两种方法,其一是恢复余数法,其二是加减交替法,它是对恢复余数法的一种修正,减少了恢复余数的操作。
13.解释
略
14.
浮点数加减法运算主要包括对阶,尾数加减,规格化操作,舍入,以及检查阶码是否溢出
14.解释
课本第55页流程图
15.
已知X=-0.0101则X原=10101,X补=11011
15.解释
略
16.
对于机器数10000000,若它表示的真值为-127,则它是反码,若它表示的真值是-128,则它为补码。
16.解释
略
17.
0.1010的原码0.1010
反码0.1010
补码0.1010
17.解释
0.1010是正数
18.
-0的原码1.0000
补码0.0000
反码1.1111
18.解释
略
19.
X补为1.1100,X的真值为-0.0100
X补位0.0001,X的真值位0.0001
X补为1.1111,X的真值-0.0001
X补为1.0001,X的真值为-0.1111
19.解释
如果补位的符号位为0说明是正数,全部由都一样,如果是1说明是负数,首先除了符号位之外全部取反再加1
20.
设机器字长为8,定点表示时,数值7位,符号位1位,定点原码整数表示时候,最大正数127,最小负数-128
20.解释
-(2^n)到 2^n-1
21.
设机器字长位16位,浮点表示时候,阶码6位,其中阶符1位;尾数10位,其中数符1位,阶码的基数为2,浮点原码表示时,最大浮点数= (1-2^x)* 2^y, 最小浮点数-(1-2^y ) * 2 ^ y,绝对值最小浮点数±2^z
x = 9,y=15,z=-16
21.解释
X为尾数,1位数符位,所以是9,Y是阶码的最大值。阶码一共6位,其中1位为符号位,因此剩余的5位用于表示阶数,Z是阶码的最小值。阶码的最小值是符号位为负的最大阶数
22.
23.
如果采用偶校验,下述两个数据的校验位的值是什么?
0101010校验值=1
0011011校验值=0
如果采用奇校验
010101010100校验值=0
001000001011校验值=1
23.解释
数1的个数就行了
24.
设有16个信息位,如果采用海明校验,至少需要设置5个校验位,其中校验位P5放在海明码的第4位上,P6放在海明码的第5位上,D5放在海明码的第3位上。
24.解释
海明校验码:
实现原理:在数据中加入几个校验位,并把数据中的每一个二进制位分配在几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验组的值发生变化。假设校验位的个数为r, 则它能表示 2 r 则它能表示2^r 则它能表示2r个信息,用其中一个信息指出没有错误, 其余的 2 r − 1 其余的2^r-1 其余的2r−1个信息指出错误发生在哪一位。错误也可能发生在校验位,也就是 2 r ≥ k + r + 1 2^r \geq k+r+1 2r≥k+r+1的时候才能纠错k个一位错。
23.解释
数1的个数就行了
24.
设有16个信息位,如果采用海明校验,至少需要设置5个校验位,其中校验位P5放在海明码的第4位上,P6放在海明码的第5位上,D5放在海明码的第3位上。
24.解释
海明校验码:
实现原理:在数据中加入几个校验位,并把数据中的每一个二进制位分配在几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验组的值发生变化。假设校验位的个数为r, 则它能表示 2 r 则它能表示2^r 则它能表示2r个信息,用其中一个信息指出没有错误, 其余的 2 r − 1 其余的2^r-1 其余的2r−1个信息指出错误发生在哪一位。错误也可能发生在校验位,也就是 2 r ≥ k + r + 1 2^r \geq k+r+1 2r≥k+r+1的时候才能纠错k个一位错。
25.
海明码我不太会,后面再补充吧