第二章 作業(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圖案
| || ||| ||||
答案
|||| ||| || |