2013年3月22日 星期五

3/15 計算機概論課程內容


電腦算術邏輯單元
加法
減法
乘法概念介紹
介紹浮點數格式
符號位元 1 bit
指數偏移 8 bit (0~255)
代表真實指數(-127~0~128)
另外 23個bit 代表假數


二進位數字的乘法




二進位數字的乘法可用與十進位乘法相同的方法來做。由乘數的最低有效位元開始,將 乘數的每個位元乘上被乘數,每次運算皆可產生一個部分積,而後續的部分積都要往左移
一位,最後將這些的部分積加總便可得到最後積。
                
二進位乘法運算
被乘數B1B0
乘數A1A0
A0*B1A0*B0
A1*B1A1*B0
C3C2C1C0



所以由左邊的乘法運算我們可以得知:
 C0=A0B0
 C1=(A0B1 + A1B0)的和
 C2=(A1B1 +(A0B1+A1B0)的進位)的和
 C3=(A1B1 +(A0B1+A1B0)的進位)的進位


下面所示即為乘法器的真值表:

B1B0A1A0C3C2C1C0
00000000
00010000
00100000
00110000
01000000
01010001
01100010
01110011
10000000
10010010
10100100
10110110
11000000
11010011
11100110
11111001


























下面所示為乘法器的邏輯電路圖:

四位元的定點二進制乘法器的實現有很多種,若使用解碼對照方式需要一一列表,真是費時且麻煩,所以便觀察我們小學老師所教的直式乘法之計算方式來試圖轉化流程進而完成本次電路。


浮點數表示法


數學上的科學符號就是浮點數表示法,其規則是:將某數表示為a*10b 其中1≦a<10 。例如:
1023.32=1.02332*103
23.32=2.332*101

若將其規則應用到二進位,則浮點數表示法如下:
(10.0101)2=1.00101*21
(0101001.01)2=1.0100101*25
(11.1)2=1.110000000*21
(0.10100)2=1.0100*2-1
國際電機電子工程師協會(Institute of Electrical and Electronics Engineers IEEE)制定短實數(Short Real)其格式如下 :以32位元來表示浮點數,最左邊位元為符號位元,接著用8個位元來表示指數(Exponent)接著剩下的23個位元來表示假數(Mantissa)的部分。由於二進位中所有科學記號的表示法其結果小數點左邊均為1故可省略不記。
浮點數表示法轉換範例:
符號部分則由於該數(3.14159)為正數故為0
指數部分:指數為1,由於指數部分是採用超127,也就是將原數加上127再放入圖中的指數部分,因此指數部分表示如後:(128)10=(1000 0000)2
假數部分取23位放入圖中的假數部分 
(3.14159)10= (11.00100100)2= (1.1001001000011111100111110*21)2 
將上述各位元放入記憶體中便可得到如下圖的表示法:
 

範例:
(35.5)10
=(100011.1)2
=(1.000111000000000000000*25)2
5=(00000101) 2
5超127=(00000101) 2+(01111111) 2
=(1000100) 2


s(1位元)+e(8位元)+m(23位元)
其中:s為符號位元(0表示正數,1表示負數),e為指數,bias為偏移量,m為假數
在單精確度(32位元)下
(指數偏移量為127)



沒有留言:

張貼留言