日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

【计算机组成】运算器与运算方法

發布時間:2023/12/15 综合教程 25 生活家
生活随笔 收集整理的這篇文章主要介紹了 【计算机组成】运算器与运算方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

定點數運算及溢出

定點數加減法:減法化加法,用補碼直接相加,忽略進位
溢出:運算結果超出了某種數據類型的表示范圍
溢出檢測方法:統一思想概括為正正得負或負負得正則溢出,正負或負正不可能溢出

方法1:V = XYS + XYS(XY為兩個加數的符號位,S為結果的符號位,_表示非),那么V = 1則為溢出
方法2:V = C0 ⊕ C1(C0是最高數據位產生的進位,C1是符號位產生的進位),那么V = 1則為溢出
方法3:V = Xf1 ⊕ Xf2(數據采用變型補碼 Xf1Xf2 X0X1X2X3... )

注意:以上方法都是利用正正得負負負得正則溢出為出發點的電路設計

補碼一位乘法——Booth算法

[
egin{align}
[x·y]_補 & = [x]_補·(-y_0+∑ y_{i}2^{-i}) \
& = [x]_補·[ -y_0 + y_{1}2^{-1} + y_{2}2^{-2} + … + y_{n}2^{-n}] \
& = [x]_補·[ -y_0 + (y_{1} - y_{1}2^{-1}) + (y_{2}2^{-1} - y_{2}2^{-2}) + … + (y_{n}2^{-(n-1)} - y_{n}2^{-n})] \
& = [x]_補·[(y_1 - y_0) + (y_2 - y_1) 2^{-1} + … + (y_n - y_{n-1}) 2^{-(n-1)} + (0 - y_n)2^{-n}] \
end{align}
]

總結起來設計數字電路的規則就是:

為 00 或者為 11 的時候,直接右移一位
為 01 的時候,加 x 的補,然后右移一位
為 10 的時候,加 -x 的補,然后右移一位

其實第一行和最后一行都能設計數字電路,為什么要從第一個式子推到最后一個式子呢?原因有兩點:

二進制中如果有 0,可以不進行運算
如果有連續的 1 可以減少計算次數,比如 (a * 001111100 = a * (010000000 - 0000000100))

所以每次判斷 (y_{n+1} - y_{n}) 就可以減少計算次數了

參考:https://www.cnblogs.com/xisheng/p/9260861.html

定點數除法

略,沒找到好的資料

浮點數加減法

求階差,階碼小的對齊大的
尾數加減
結果規格化

總結

以上是生活随笔為你收集整理的【计算机组成】运算器与运算方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。