计算机组成原理第三章作业2
1.
能发现两位错并能纠正一位错的编码为海明码
2.
为了完成各种二进制信息传输,存储等过程的查错及改错,可以采用校验编码的方法。下面不属于常用的编码方案的是16进制码
3.
如果采用0舍1入进行舍入处理,则0.0111舍去最后一位,变成0.100
4.
假设下列字符码中有奇偶位校验,但没有数据错误,采用偶校验的字符码是11001001
1.
将信息10101111的低位补充偶校验位,由此得到的偶校验码为101011110
2.
将信息01011011的低位补充偶校验位,由此得到的偶检验码为010110111,若采用奇校验,则校验码为010110110
3.
将信息1011011的高位补充奇校验位,由此得到的奇校验码为01011011
4.
设有7位信息码0100101,则最低为增设偶校验位后的代码位01001011,而最低位增设奇校验位后的代码为01001010
5.
设机器字长4位,定点表示时,数值3位,符号位1位;定点补码小数表示时,最大正数和最小负数各是0.875,-1
6.
设机器字长16位,定点表示时,数值15位,符号位1位;定点补码小数表示时,最大正数和最小负数各是1-2^x和y;x=-15,y=-1
7.
设机器字长16位,浮点表示时,阶码6位,其中阶符1位;尾数10位,其中数符1位,阶码的基数为2,浮点原码表示时候,最大浮点数=(1-2^x)* 2 y,最小浮点数-(1-2x) *2y,绝对值最小浮点数±2Z,那么x=-9,y=31,z=-32
8.
设机器字长16位,浮点表示时,阶码6位,其中阶符1位;尾数10位,其中数符1位,阶码的基数为2,浮点补码表示时候(阶码和尾数都用补码表示),最大浮点数=(1-2^x)* 2 ^y, 最小浮点数-2^z, 绝对值最小浮点数+2^w那么x=-9,y=31,z=-32
w = -8
9.
定点除法运算通常有两种方法,其一是恢复余数法,其二是加减交替法,它是对恢复余数法的一种修正,减少了恢复余数的操作。
10.
数据校验码通过加入冗余码发现编码中的错误并纠正,通常采用码距的概念表示任意两个合法码之间至少有几个二进制位不相同,例如,奇偶校验码的码距是2
11.
如果采用偶校验
0101010的校验值为1
0011011的校验值为0
如果采用奇校验
010101010100的校验值为0
001000001011的校验值为1
12.
设有16个信息位,如果采用海明校验,至少需要设置6个校验位,P5放在第16位上,P6放在第32位上,D5放在第9位上
13.
设有8位有效信息01101101(数据为最高位是D8,最低为是D1),海明码是1011001100111,若发现一位错S5=1,且S4S3S2S1=1100那么是数据位D8错,当S4S3S2S1=1010是数据位D6错了,S4S3S2S1=0111是数据位D4错了,S4S3S2S1=0011是数据位D1错了
上一次作业总结,
单项选择题:
1.
第四代计算机的逻辑器件采用的是大规模、超大规模集成电路。
1.解释
上面是PPT的内容,具体可见课本P1-P3,但是课本中于PPT有部分内容不太一样,课本中分为了5代,第一代为电子管计算机时代(1946-1958),第二代为晶体管计算机时代(1958-1965),第三代为集成电路计算机时代(1965-1970),第四代为大规模集成电路计算机时代,第五代为超大规模集成电路时代,第四代和第五代其实都是从1971年至今,只不过课本细分了一点。
2.
对于二进制1000000,若其值为-63,则它是用反码表示的。
2.解释
对于-63,我们先写出它的原码为1111111,其中第一位为符号位,它的反码为1000000,它的原码为1000001。然后这里我再介绍一下移码和阶码。
2.拓展部分-移码,课本第43页
PPT内容为:
先分析PPT中的内容:
x1为0,1010101,注意这里的0,是为了方便看清楚符号位,这里n=7,所以x1的移码就为1,1010101
x2为1,1010101,注意这里的1,是为了方便看清楚符号位,这里n=7,所以x2的移码就为0,1010101
总结一下,移码其实和补码就差一个符号位,其他都不变。
2.拓展部分-阶码,课本第42页
浮点数是指小数点位置可浮动的数据,通常以
N
=
M
∗
R
E
N = M*R^E
N=M∗RE
其中N为浮点数,M为尾数,E为阶码,R为阶的基数,R是一个常数,一般为2,8或16。在一台计算机中,所有数据的R都是相同的,于是不需要在每个数据中表示出来,因此,浮点数在机内的表示一般采用如下形式。
Ms(是尾数的符号位,设置在最高位上) | E(阶码,一般为整数,有一个符号位,在最高位上) | M |
---|---|---|
1位 | n+1位 | m位 |
这里重点讲一下尾数M
为了保证数据精度,尾数通常用规格化形式表示,当R=2,且M!=0,M的绝对值应该大于或等于十进制数0.5,下面就按照课本例子来解释。
R=2的时候,尾数为0.0011,阶码为0100,M转化成十进制会小于0.5,所以将M左移两位,相当于乘以了一个十进制4,因为R=2,所以为了保持值不变,就要除以4,即将E减去十进制4,二进制10,变为0010。
3.
在定点二进制运算器中,减法运算一般通过补码运算的二进制加法器来实现。
3.解释
课本第38页,[x-y]补 =[x+(-y)]补=[x]补+[-y]补
4.
无符号数,下列数中最大的数是(352)10
4.解释
A(100110001)2转化为10进制为305
B(327)8转化为10进制为215
C(198)16转化为10进制为408
5.
若浮点数的阶码和尾数都用原码表示,则判断运算结果是否为规格化数的方法是尾数小数点后第一位数字为1。
5.解释
在原码表示下,符号位和数值位是分开的,符号位仅用于表示正负,而规格化数的判断仅与尾数的最高有效位有关。规格化数的要求是尾数的最高有效位为非零。因此,判断是否为规格化数的方法与符号位无关,而只与尾数的小数点后第一位相关。
6.
在定点运算器中,无论采用双符号位还是单符号位,必须有溢出判断电路,它一般用异或门来实现。
6.解释
首先我们需要知道为什么会溢出,当同号相加或相减的时候,它运算结果会超出机器数所能表示的范围就会溢出。所以我们怎么判断溢出呢,同号相加或相减肯定符号位不变,如果符号位变了,肯定是溢出了,所以用异或门来实现就行了,如果是双符号位f1f2,如果f1和f2不相同也就是溢出了。
7.
浮点数的表示范围和精度主要去取决于阶码的位数和尾数的位数
7.解释
课本第43页。单精度浮点数(32位),阶码8位,尾数24位(内含1位浮点位),双精度浮点数(64位),阶码11位,尾数53位(内含1位符号位)
8.
能发现两位错误并能够纠错一位错的编码为海明码。
8.解释
首先我们解释数据校验码是什么,数据校验码:一种常见的带有发现某些错误或者能自动改错能力的数据编码方法。实现原理:加进一些冗余码,当合法数据编码出现某些错误时,成为非法编码。这样,通过检测编码的合法性可以达到发现错误的目的。即在基本的有效数据外,再扩充部分位,增加部分(冗余部分)被称为校验位。将校验位与数据位一起按某种规则编码,写入存储器或向外发送。当从存储器读出或接收到外部传入的代码时,再按相应的规则进行判读。若约定的规则被破坏,则表示出现错误。根据错误的特征进行修正恢复。常用的:奇偶校验码、海明校验码、循环冗余校验码(CRC码)。下面我会逐一解释。
奇偶校验码:
实现原理:码距从1增加到2。若编码中有奇数个二进制位的值出错了,由1变成0,或由0变成1,这个码就会变成非法编码。实现的具体方法通常是为一个字节补充一个二进制位,称为校验位,使字节的8位和该校验位含有1值的个数为奇数或者偶数。使用奇数个1进行校验时,就叫奇校验,使用偶数个1进行校验时,就叫偶校验。
海明校验码:
实现原理:在数据中加入几个校验位,并把数据中的每一个二进制位分配在几个奇偶校验组中。当某一位出错后,就会引起有关的几个校验组的值发生变化。
循环冗余校验码:
循环冗余校验码 (CRC, Cyclic Redundancy Check) 是一种常用的错误检测编码,它基于二进制的多项式除法来实现。其主要目的不是纠错,而是高效地发现数据传输过程中发生的错误。CRC 的实现原理基于多项式的除法运算。数据发送方使用预定的生成多项式对待发送的数据进行处理,生成一个校验码并附加在数据后面。接收方收到数据后,使用相同的生成多项式进行校验,以检查数据传输是否发生错误,
现在具体针对题目中的问题:假设校验位的个数为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个一位错。这里当r=2就可以了,满足题意。
9.
第一代计算机的逻辑器件采用的是电子管
9.解释
见1.解释
10.
无符号数,下列数中最小的数是(2278)
10.解释
A转化为10进制是305
B转化为10进制是151
C转化为10进制是153
D是152
11.
对于二进制10000000,若其值为-128,则它是用补码来实现的
11.解释
这里是用八位二进制表示-128,他没有原码和反码,只有补码。令二进制位数为n,下面给出原码,补码和反码能表示的数据范围。
原码 | − ( 2 ( n − 1 ) − 1 ) 到 ( 2 ( n − 1 ) − 1 ) -(2^(n-1)-1)到(2^(n-1)-1) −(2(n−1)−1)到(2(n−1)−1) |
---|---|
补码 | − 2 ( n − 1 ) 到 ( 2 ( n − 1 ) − 1 ) -2^(n-1)到(2^(n-1)-1) −2(n−1)到(2(n−1)−1) |
反码 | − ( 2 ( n − 1 ) − 1 ) 到 ( 2 ( n − 1 ) − 1 ) -(2^(n-1)-1)到(2^(n-1)-1) −(2(n−1)−1)到(2(n−1)−1) |
对于八位的二进制来说,原码和反码范围均为-127到127,补码的范围为-128到127。为什么会有这个差别呢,就是因为补码没有+0和-0的区别。符号位上的进位就省略了。
12.
若浮点数的阶码和尾数都用补码表示,则判断运算结果是否为规格化数的方法是数符与尾数小数点后第一位数字相异为规格化数。
12.解释
首先我们应该知道什么是浮点数的规格化数,为了保证数据精度,尾数通常用规格化形式表示,当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
这种基于补码的区间适用于补码表示的浮点数,因为补码需要处理符号和数值的相互关系。所以若浮点数的阶码和尾数都用补码表示,则判断运算结果是否为规格化数的方法是数符与尾数小数点后第一位数字相异为规格化数。这道题要注意与第5题进行区分。
13.
机器数移码,补码中,零的表示形式是唯一的。
13.解释
假设用8位二进制数来表示
+0的原码00000000,反码00000000,补码00000000,移码10000000
-0的原码10000000,反码11111111,补码00000000,移码10000000
14.
为了完成各种二进制信息传输、存储等过程的查错及改错。可以采用校验编码的方法,下面不属于常用的编码方案的是16进制码
14.解释
见8.解释
15.
以下哪个是零的一个原码表示?10000000
15.解释
这个是-0的原码表示
16.
冯诺依曼机工作的基本方式的特点是按地址访问并顺序执行指令。
16.解释
课本第1页
冯诺依曼机器具有如下基本特点:
1.计算机由运算器、控制器、存储器、输入设备和输出设备5部分组成
2.采用存储程序的方式,程序和数据放在同一个存储器中,并以二进制码来表示
3.指令由操作码和地址码组成
4.指令在存储器中按执行顺序存放,由指令计数器(即程序计数器PC)指明要执行的指令所在的存储单元地址,一般按顺序递增,但可按运算结果或外界条件而改变。
5.机器以运算器为中心,输入输出设备与存储器间的数据传送都通过运算器。
17.
下列数中最小的数是(100010)BCD
17.解释
A转化成10进制是37
B转化成10进制是40
C转化成10进制是22
D转化成10进制是1573
计算机组成原理第三章作业2
18.
某机字长32位,1位符号位,31位表示尾数。若采用原码,用定点表示法表示小数,则最大正小数为 1 − 2 ( − 31 ) 1-2^(-31) 1−2(−31)
18.解释
 − 1 2^(n-1)-1 2(n−1)−1
20.解析
符号位为0,其余全为1
21.
尾数采用补码的浮点数运算中,出现以下哪种情况时要进行规格化处理?符号位与最高数值位不同。
21.解释
这题我做错了,上面写的是一个错误答案,帮你们先排除一个。
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 2^(n)-1 2(n)−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.解释
这题我做错了,做不来一点
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页流程图,我不能理解,我就拿了2分
15.
已知X=-0.0101则X原=1.0101,X补=1.1011
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,这题也只拿了1分
21.
设机器字长位16位,浮点表示时候,阶码6位,其中阶符1位;尾数10位,其中数符1位,阶码的基数为2,浮点原码表示时,最大浮点数= (1-2^x)* 2^y, 最小浮点数-(1-2^y ) * 2 ^ y,绝对值最小浮点数±2^z
x = -9,y=31,z=-32
21.解释
我做不来,抄答案的
22.
(1) 00.000105
(2)没溢出
(3)01.01010
(4)溢出
(5)负向
23.
如果采用偶校验,下述两个数据的校验位的值是什么?
0101010校验值=1
0011011校验值=0
如果采用奇校验
010101010100校验值=0
001000001011校验值=1
23.解释
数1的个数就行了
24.
设有16个信息位,如果采用海明校验,至少需要设置6个校验位,其中校验位P5放在海明码的第16位上,P6放在海明码的第33位上,D5放在海明码的第9位上。
24.解释
这题拿了3分
25.
海明码是1011001100111
D6
D4
20.
设机器字长为8,定点表示时,数值7位,符号位1位,定点原码整数表示时候,最大正数127,最小负数-128
20.解释
-(2^n)到 2^n-1,这题也只拿了1分
21.
设机器字长位16位,浮点表示时候,阶码6位,其中阶符1位;尾数10位,其中数符1位,阶码的基数为2,浮点原码表示时,最大浮点数= (1-2^x)* 2^y, 最小浮点数-(1-2^y ) * 2 ^ y,绝对值最小浮点数±2^z
x = -9,y=31,z=-32
21.解释
我做不来,抄答案的
22.
(1) 00.000105
(2)没溢出
(3)01.01010
(4)溢出
(5)负向
23.
如果采用偶校验,下述两个数据的校验位的值是什么?
0101010校验值=1
0011011校验值=0
如果采用奇校验
010101010100校验值=0
001000001011校验值=1
23.解释
数1的个数就行了
24.
设有16个信息位,如果采用海明校验,至少需要设置6个校验位,其中校验位P5放在海明码的第16位上,P6放在海明码的第33位上,D5放在海明码的第9位上。
24.解释
这题拿了3分
25.
海明码是1011001100111
D6
D4
D1