第二章 作业(146789B)【计组】
- 前言
- 头脑风暴
- 推荐
- 第二章 作业(146789B)【计组】
- 1
- 4
- 5(2)
- 6(1)
- 7(1)
- 8(1)
- 9(1) [x+y]
- 11
- 最后
- 头脑风暴答案
前言
以下内容源自计组
仅供学习交流使用
头脑风暴
题目
把下面1234的图案
| || ||| ||||
只移动一个实现翻转,变成4321图案
推荐
第二章 随堂练习【计组】
第二章 作业(146789B)【计组】
1
1 写出下列各整数的原码、反码、补码表示(用8位二进制数)。其中MSB是最高位(符号位),LSB是最低位
(1) -35
(2)-128
(3)-127
(4)-1
题目 | 原码 | 反码 | 补码 |
(1) -35 | 1010 0011 | 1101 1100 | 1101 1101 |
(2)-128 | 无 | 无 | 1000 0000 |
(3)-127 | 1111 1111 | 1000 0000 | 1000 0001 |
(4)-1 | 1000 0001 | 1111 1110 | 1111 1111 |
4
4.将下列十进制数表示成IEEE754标准的32位浮点规格化数
(1)27/64 (2)-27/64
(1)27/64=11011 * 2^-6 =1.1011 * 2 ^-2
e=-2
s=0
E=-2+127=125=0111 1101
M=1011
0011 1110 1000 0000 0000 0000 0000
(2)与(1)相差符号位
1011 1110 1000 0000 0000 0000 0000
5(2)
5.已知x和y,用变形补码计算x+y,同时指出结果是否溢出。
(2)x=11011, y=-10101
(2)x=11011, y=-10101
双符号位补码 [x]补=00 11011 [y]补=11 01011
[x]补 00 11011
+ [y]补 11 01011
-----------------------
100 00110
[x+y]补=00 00110
验证
x=16+11
y=16+5
x-y=6
6(1)
6.已知x和y,用变形补码计算x-y,同时指出结果是否溢出。
(1)x=11011, y=-11111
(1)x=11011, y=-11111
[x]补=0 11011 [ y]补=1 00001
[x]补=0 11011 [-y]补=0 11111
双符号位补码
[x]补=00 11011 [-y]补=00 11111
[x]补 00 11011
+ [y]补 00 11111
-----------------------
01 11010
[x+y]补=01 11010
验证
显然:-y=11111,已经是5位二进制表示最大了,+x的结果必上溢
7(1)
7.用原码阵列乘法器、补码阵列乘法器分别计算x×y。
(1)x=11011, y=-11111
(1)x=11011, y=-11111
①原码阵列乘法器
[x]原=0 11011
[y]原=1 11111
符号位 Xf=0 Yf=1
数值位 |x|=11011 |y|=11111
|x| 11011
×|y| 11111
-----------------
11011
11011
11011
11011
11011
----------------------
1101000101
|x|×|y|= 1101000101
符号位单独运算为1
[x×y]原=1 1101000101
(1)x=11011, y=-11111
②补码阵列乘法器
设最高位为符号位,则输入数据为
[x]补=0 11011 [y]补=1 00001
符号位 Xf=0 Yf=1
数值为算前求补
|x|=11011 |y|=11111
|x|×|y|=1101000101
符号位单独运算为1, (负数求补)
数值位算后求补=0010111011 (正数补=原)
[x×y]补=1 0010111011
验证
x=27,y=-31
x*y=-831
1101000101B=837D
小技巧:
怎么进位
本位和4的话,进位到前第2位即可
---|-------
100
8(1)
8.用原码阵列除法器计算x÷y(注:先乘1个比例因子变成小数)。
(1)x=11000, y=-11111
(1)x=11000, y=-11111
x,y同时乘以2^-5
则x/y的商不变,余数变成原来的2^-5
举例:7/2=3...1 70/20=3...10
x=0.11000 y=-0.11111
①手算法
0.11000
------------------------
0.11111 / 0.11000 0
0.01111 1
-------------------------
0.01000 10
0.00111 11
------------------------
0.00000 11000
所以0.11000/-0.11111的商是-0.11000,余数是 0.00000 11000
所以11000/11111的商是-0.11000,余数是0.11000
x=0.11000 y=-0.11111
②不恢复余数法
[ x]补=0.11000
[ y]补=0.11111
[-y]补=1.00001
0.11000
+[-y]补 1.00001
-----------------
1.11001 <0 q0=0
+[ y]补 0.011111
-----------------
10.010001 >0 q1=1
+[-y]补 1.1100001
--------------------
100.0000011 >0 q2=1
+[-y]补 1,11100111
-----------------------
1.11100111 <0 q3=0
+[ y]补 0.000011111
-----------------------
1.111101101 <0 q4=0
+[ y]补 0.0000011111
---------------------------
1.1111111001 <0 q5=0
所以商为-0.11000
余数为0.0000011 (余数取最近q>0时候(即q2时)的余数)
小技巧:
要算q几,y就向右移几位,就补几个符号位,再拼接原数,并且每次比上次的结果错开一位
举例:算q2所以将[-y]补 右移2位
先写1.1 再将数值100001拼接,即为1.1100001
举例:算q4所以要将[y]补 右移4位
先写0.000 再将数值011111拼接,即为0.000011111
结果验证
(1)x=11000, y=-11111
x=24,y=-31
商是-0.75 (-0.11000)
余数是0.75 (0.11000)
-31*-0.75+0.75=24
9(1) [x+y]
9.设阶码3位,尾数6位,按浮点运算方法,完成下列取值的[x+y],[x-y]运算:
(1)x=2-011X0.100101,
y=2-010X(-0.011110)
(1)x=2^-011 X 0.100101, y=2^-010 X (-0.011110)
解:两数均以补码表示,阶码采用双符号位,尾数采用双符号位,则它们的浮点表示分别为:
[x]浮=11 101 00.100101
[y]浮=11 110 11.100010
<1>求阶差并对阶
△E=Ex-Ey=[Ex]补+[Ey]补=11 101 + 00 010 = 11 111
即△E为-1,x的阶码小,应使Mx右移一位,Ex加1,
[x]浮= 11 110,00.0100101
<2>尾数求和
00.0100101
11.100010
----------------
11.1101001
|
<3>规格化处理
尾数运算结果的符号位与最高数值位同值,应执行左规处理,结果为1.01001,阶码为11 100
-0.10111[原] -100[原]
<4>舍入处理
无需操作
<5>判溢出
阶码符号位为11,不溢出,
故得最终结果为x + y = 2^-100 × -0.10111
验证
x=2^-011^X0.100101, y=2^-010X(-0.011110)
x= 0.000100101
y=-0.00011110
显然|y|>|x|,结果为负
x+y=-(0.00011110-0.000100101)
0.00011110
- 0.000100101
-----------------
0.000010111
x+y=-0.000010111=-0.10111 × 2^-4
11
11 某加法器进位链小组信号为C4C3C2C1,低位来的进位信号为C0,请分别按下述两种方式写出 C4C3C2C1,的逻辑表达式:
①串行
C1=G0+P0C0
C2=G1+P1C1
C3=G2+P2C2
C4=G3+P3C3
②并行
C1=G0+P0C0
C2=G1+G0P1+P0P1C0
C3=G2+G1P2+G0P1P2+P0P1P2C0
C4=G3+G2P3+G1P2P3+G0P1P2P3+P0P1P2P3C0
最后
路漫漫其修远兮,吾将上下而求索
头脑风暴答案
回顾题目
把下面1234的图案
| || ||| ||||
只移动一个实现翻转,变成4321图案
| || ||| ||||
答案
只需移动第四个中的第③更
放到第一个和第二个间隙中即可
|||| ||| || |