计算机组成原理:浮点数的加、减、乘、除运算(含实例完整运算)
目錄
浮點(diǎn)數(shù)的加減運(yùn)算
零操作數(shù)的判斷
對階操作
尾數(shù)的加減操作
尾數(shù)的規(guī)格化
?結(jié)果的舍入處理
?結(jié)果的溢出判斷
加減實(shí)例運(yùn)算過程
浮點(diǎn)數(shù)的乘除法
零操作數(shù)的檢查
階碼的加減操作
尾數(shù)的乘除操作
結(jié)果的規(guī)格化、舍入處理及溢出的判斷
具體的操作如下圖
?乘除實(shí)例運(yùn)算過程
浮點(diǎn)數(shù)的加減運(yùn)算
?零操作數(shù)的判斷
一個(gè)操作數(shù)為零,也不必計(jì)算,節(jié)省時(shí)間
- 若加數(shù)或被加數(shù)其中有 0,則等于其中不為0 的那個(gè)數(shù);若全為 0 則等于 0
- 若被減數(shù)為 0,則等于減數(shù)的相反數(shù) ;若減數(shù)為 0,則等于被減數(shù) ,若全為0則等于0
對階操作
-
以階碼加大(絕對值)的為標(biāo)準(zhǔn),階碼較小的 ? 向較大的對齊
- ?目的:計(jì)算機(jī)中的浮點(diǎn)數(shù)定點(diǎn)表示時(shí)小數(shù)點(diǎn)的位置是固定的,在小數(shù)的數(shù)值位的最前面,為了避免階碼較大的浮點(diǎn)數(shù)尾數(shù)左移導(dǎo)致最高位的丟失
?如x 的階碼為 Ex=010,y的階碼Ey=100,則Ex-Ey =-2,則x 右移兩位,階碼加2,這時(shí)x 和y 的階碼都是100,這個(gè)過程就是對階
尾數(shù)的加減操作
以雙符號位的補(bǔ)碼形式進(jìn)行運(yùn)算,方便判斷溢出的情況
其中若符號位的最高位還有進(jìn)位則直接舍棄,因?yàn)闄C(jī)器的位數(shù)是有限制的
尾數(shù)的規(guī)格化
- 尾數(shù)的符號位為 01?或 10的情況,則進(jìn)行右規(guī),階碼加一,將符號位變成 00 或 11 ,其中符號位的新數(shù)繼承前一位符號位
- 尾數(shù)下溢時(shí),進(jìn)行舍入處理
?結(jié)果的舍入處理
在對階或者右規(guī)操作時(shí),尾數(shù)的低位會移出,影響精度,因此要進(jìn)行舍入處理
- 0 舍 1 入法:若低位是 0 ,則直接舍棄,若低位是1 ,則尾數(shù)加 1?
- 恒置 1 法:無論地位是什么,最低位恒置為 1
- 第一種方法精度較高,但需要記錄移出的值;第二種方法精度較低,但方便,適合用來制作運(yùn)算器
?結(jié)果的溢出判斷
- 尾數(shù)溢出,在規(guī)格化時(shí)右規(guī)處理或者是舍入處理
- 階碼上溢時(shí),置上溢標(biāo)志
- 階碼下溢時(shí),置為機(jī)器數(shù) 0
加減實(shí)例運(yùn)算過程
注意:求得的都是補(bǔ)碼,要轉(zhuǎn)化為原碼的形式,才是真實(shí)的結(jié)果值
浮點(diǎn)數(shù)的乘除法
零操作數(shù)的檢查
若有零,則直接可得結(jié)果為零
階碼的加減操作
- 以補(bǔ)碼或移碼的形式,進(jìn)行加減
- 若為乘法,則兩者相加
- 若為除法,則被除數(shù)的階碼減除數(shù)的階碼
尾數(shù)的乘除操作
定點(diǎn)數(shù)的乘除操作
具體操作戳這里👇
定點(diǎn)數(shù)的乘除運(yùn)算法則(含實(shí)例運(yùn)算過程)
結(jié)果的規(guī)格化、舍入處理及溢出的判斷
同上面加減的操作
具體的操作如下圖
?乘除實(shí)例運(yùn)算過程
- 乘法
- 除法?
關(guān)于雙符號位的補(bǔ)充請見
https://blog.csdn.net/m0_51783792/article/details/123985218https://blog.csdn.net/m0_51783792/article/details/123985218
總結(jié)
以上是生活随笔為你收集整理的计算机组成原理:浮点数的加、减、乘、除运算(含实例完整运算)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker基础(一)
- 下一篇: 火狐导入书签乱码