《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > 計算機系統原理(十) 二進制整數的乘法運算和除法運算

計算機系統原理(十) 二進制整數的乘法運算和除法運算

2017-06-22
關鍵詞: 匯編語言

2.5我們著重介紹了二進制整數的加、減運算,本次我們繼續介紹乘、除運算。本章是迄今為止最難的一章,希望各位猿友有所收獲,也別忘了“點個推薦哦”。

引言

運算一直是程序運行當中一個重要的環節,而在二進制的運算過程當中,加法運算又是重中之重,它基本上奠定了二進制運算的基礎。因為無論是減法還是乘法,都可以由加法運算來替代,唯有除法不能由加法替代。

了解計算機運算的規律,可以有助于我們理解很多程序代碼上無法理解的內容。比如上章提到的溢出問題,在了解了加法運算的原理之后,相信猿友們都可以輕松的知道為何有些運算會得到意想不到的結果。

這里還需要提一點的是,不同的處理器所采取的運算方式可能是有細微的差別的,因此也不能一概而論。因此我們大多時候會盡量討論運算的抽象數學特性,抽象的東西大部分時候總是可靠的,這種特性為跨平臺提供了基礎,不過也并非總是如此,畢竟LZ只聽說過浮點數運算標準,還沒聽說過整數運算標準,不知道究竟是LZ孤陋寡聞了,還是確無此物。

正因如此,我們了解一下這些運算的抽象性,會有助于我們理解程序代碼級無法理解的東西。

無符號乘法

無符號的乘法與加法類似,它的運算方式是比較簡單的,只是也可能產生溢出。對于兩個w位的無符號數來說,它們的乘積范圍在0到(2w-1)2之間,因此可能需要2w位二進制才能表示。因此由于位數的限制,假設兩個w位的無符號數的真實乘積為pro,根據截斷的規則,則實際得到的乘積為 pro mod 2w。

補碼乘法

與加法運算類似,補碼乘法也是建立在無符號的基礎之上的,因此我們可以很容易的得到,對于兩個w位的補碼數來說,假設它們的真實乘積為pro,則實際得到的乘積為 U2Tw(pro mod 2w)。

上面的式子我們有一個假設,就是假設對于w位的兩個補碼數來說,它們的乘積的低w位與無符號數乘積的低w位是一樣的。這意味著計算機可以使用一個指令執行無符號和補碼的乘法運算。

在書中給出了這一過程的證明,我們來大概看一下,這里主要應用了無符號編碼和補碼編碼的關系,其中x’和y’分別代表x和y的補碼編碼。

這里運用的主要技巧就是2w mod 2w = 0。

乘法運算的優化

根據我們小學所學的乘法運算,我們知道,假設兩個w位的二進制數相乘,則需要進行w次與運算,然后進行w - 1次加法運算才能得到結果。從此不難看出,乘法運算的時間周期是很長的。因此計算機界的高手們想出了一種方式可以優化乘法運算的效率,就是使用移位和加法來替代乘法。

上述優化的前提是對于一個w位的二進制數來說,它與2k的乘積,等同于這個二進制數左移k位,在低位補k個0。在書中對這一等式進行了證明,過程如下。

這個過程主要應用了無符號編碼的公式,各位猿友應該不難看懂。

有了上面的基礎,我們就可以使用移位和加法對乘法優化了。對于任意一個整數y,它總能使用二進制序列表示(假設不超過二進制的表示范圍),因此我們可以將x和y乘積的二進制序列表示為如下形式(此公式在書中沒有展現)。

x * y = x * (yw-12w-1 + ... + y020) =  (x << w-1) * yw-1 +....+ (x << 0 ) * y0

我們舉個例子,對于x * 17,我們可以計算x * 16 + x = (x << 4) + x ,這樣算下來的話,我們只需要一次移位一次加法就可以搞定這個乘法運算。而對于x * 14,則可以計算 x * 8 + x * 4 + x * 2 = (x << 3) + (x << 2) + (x << 1) ,更快的方式我們可以這么計算,x * 16 - x * 2 = (x << 4) - (x << 1) 。

這里最后需要提一下的是,加法、減法和移位的速度并不會總快于乘法運算,因此是否要進行上面的優化就取決于二者的速度了。


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 成人网站在线进入爽爽爽| 狂野黑人性猛交xxxxxx| 国产精品成人无码视频| 一级女人18片毛片免费视频| 最近中文字幕免费mv视频8| 亚洲视频在线不卡| 色在线亚洲视频www| 国产精品久久久久久| chinese乱子伦xxxx国语对白| 日本三浦理惠子中文字幕| 亚洲午夜久久久久久久久电影网 | 亚洲日韩欧美一区二区三区在线| 美女扒开内裤羞羞网站| 国产成人无码区免费A∨视频网站 国产成人无码区免费内射一片色欲 | 美女吸乳羞羞漫画| 国产成人麻豆亚洲综合无码精品| 97国产在线公开免费观看| 性色av一区二区三区| 久久国产色av| 欧美呜巴又大粗又长| 交换美妇94系列部分| 精品韩国亚洲av无码不卡区| 国产在线国偷精品产拍| 深夜福利视频网站| 在线视频免费观看www动漫| 中文午夜人妻无码看片| 日本理论片午夜论片| 亚洲一级生活片| 欧美精品xxxxbbbb| 免费又黄又爽又猛的毛片| 肥臀熟女一区二区三区| 国产在线观看午夜不卡| 2022福利视频| 国产精自产拍久久久久久蜜| www.kkbokk.com| 成人欧美一区二区三区在线| 久久亚洲高清观看| 旧里番yy6080| 亚洲冬月枫中文字幕在线看| 欧美视频在线观看免费| 伊人久久大香线蕉电影院|