定點(diǎn)數(shù)的加減乘除

定點(diǎn)數(shù)的加減其實(shí)可以歸為一類蛙酪。

定點(diǎn)加減

定點(diǎn)加減運(yùn)算主要用到補(bǔ)碼運(yùn)算已亥。

加法表達(dá)式為[X+Y]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)炼团;就是說(shuō)X+Y補(bǔ)碼的結(jié)果為X的補(bǔ)碼加上Y的補(bǔ)碼,即結(jié)果為補(bǔ)碼击吱。

減法表達(dá)式為[x-y]補(bǔ)=[X]補(bǔ)+[-Y]補(bǔ)泼返;就是說(shuō)X-Y的補(bǔ)碼結(jié)果就是用加法表示的,是用X的補(bǔ)碼和-Y的補(bǔ)碼相加得到的姨拥。[-Y]補(bǔ)等于[Y]補(bǔ)各位取反,包括符號(hào)位渠鸽,然后加1就得到了叫乌。

溢出

溢出就是給定一個(gè)固定的容器,容器里盛裝的液體溢出來(lái)了徽缚,我就不多解釋了憨奸。計(jì)算機(jī)中的溢出就是給了你一個(gè)固定的位數(shù)去盛放位數(shù),某個(gè)數(shù)在這個(gè)容器里裝不下了就是溢出凿试。定點(diǎn)數(shù)的加減運(yùn)算就會(huì)出現(xiàn)這種情況排宰。

那么如何判斷加減溢出,粗糙的方法是正正相加為負(fù)溢出那婉,負(fù)負(fù)相加為正溢出板甘,正-負(fù)為負(fù)溢出,負(fù)-正為正溢出详炬。

高端操作判斷溢出有個(gè)名字:變形補(bǔ)碼法盐类,其實(shí)特別簡(jiǎn)單,既可以看出溢出,也可以看出溢出的方向在跳,是向正數(shù)方向溢出了還是負(fù)數(shù)方向溢出了枪萄,一目了然。

就是符號(hào)位用雙符號(hào)位表示就可以啦猫妙,就這么簡(jiǎn)單瓷翻。符號(hào)位為00、11為正負(fù)數(shù)割坠,若出現(xiàn)01齐帚、10則溢出了。01為上溢韭脊,10為下溢了童谒。

定點(diǎn)數(shù)的乘法運(yùn)算

主要有原碼一位乘、補(bǔ)碼一位乘沪羔。

原碼一位乘

符號(hào)位不參加運(yùn)算饥伊,數(shù)值位均以絕對(duì)值出現(xiàn),X*Y中X為被乘數(shù)蔫饰,采用雙符號(hào)位琅豆,Y為乘數(shù),采用單符號(hào)位篓吁。部分積初始化為0茫因。然后接下來(lái)的操作就是for循環(huán)了。

for(y的最低位杖剪;該位沒(méi)有超出y最高位冻押;y的下一位)

{ 若y該位為1,部分積+X的絕對(duì)值盛嘿,生成的新的部分積右移一位洛巢;

若y該位為0,部分積+0,生成的新的部分積右移一位次兆;

}

結(jié)果表示:X符與Y符的異或產(chǎn)生的符號(hào)作為結(jié)果的符號(hào)稿茉。


原碼一位乘例子

補(bǔ)碼一位乘

符號(hào)位參與運(yùn)算。

X*Y中芥炭,被乘數(shù)采用雙符號(hào)位漓库,乘數(shù)采用單符號(hào)位,乘數(shù)的最低位后添加上一個(gè)附加位园蝠,附加位值為0渺蒿,仍然存在部分積。

for(y的最右邊兩位(初始的話為附加位與原來(lái)的最低位)砰琢;y的兩位不是小數(shù)點(diǎn)左右兩邊的數(shù)蘸嘶;y向左挪動(dòng)兩位)

{?

若y的兩位為00或11良瞧,則部分積+0,新的部分積右移兩位训唱;

若y的兩位為01褥蚯,則部分積+[X]補(bǔ),新的部分積右移兩位况增;

若y的兩位為10赞庶,則部分積+[-X]補(bǔ),新的部分積右移兩位澳骤;

}


補(bǔ)碼一位乘例子

其實(shí)到這了現(xiàn)在歧强,應(yīng)該會(huì)發(fā)現(xiàn)原碼一位乘與補(bǔ)碼一位乘很相似,部分積都是要移動(dòng)n次(即X为肮、Y的最高有效位個(gè)數(shù))摊册。

定點(diǎn)數(shù)的除法運(yùn)算


原碼恢復(fù)余數(shù)法運(yùn)算

符號(hào)位不參與運(yùn)算,在X/Y中颊艳,X茅特、Y的絕對(duì)值的補(bǔ)碼需要。雙符號(hào)位補(bǔ)碼運(yùn)算棋枕。

步驟:for(i=1;i<=X白修、Y的最高有效位個(gè)數(shù);i++)

{

判斷X>Y?

如果X>Y,商1重斑,生成結(jié)果左移1位兵睛;

如果X<Y,商0窥浪,生成結(jié)果+Y絕對(duì)值補(bǔ)碼,生成的結(jié)果左移1位祖很;

}

結(jié)果為:商,余數(shù)漾脂,上述中最后生成的結(jié)果就是余數(shù)的尾數(shù)突琳,余數(shù)由尾數(shù)與階碼表示,階碼一般為負(fù)數(shù)符相,左移幾次就是幾,例如:M*2的-5次方蠢琳,就是余數(shù)產(chǎn)生左移了5次啊终。

由于符號(hào)位不參加運(yùn)算,最后商的符號(hào)為X傲须、Y的符號(hào)異或產(chǎn)生蓝牲,余數(shù)的符號(hào)與被除數(shù)的符號(hào)相同。


原碼恢復(fù)余數(shù)法例子

原碼不恢復(fù)余數(shù)法運(yùn)算

符號(hào)位不參加運(yùn)算泰讽,參與運(yùn)算的是絕對(duì)值的補(bǔ)碼加減例衍。整個(gè)過(guò)程類似一個(gè)循環(huán)的判斷昔期。假設(shè)余數(shù)最初為被除數(shù)。

判斷:余數(shù)>除數(shù)佛玄,商1硼一,結(jié)果左移1位,新生成的余數(shù)-除數(shù)梦抢;

余數(shù)<除數(shù),商0,結(jié)果左移一位似谁,新生的余數(shù)+除數(shù)构拳;

該判斷需要左移n次(即參與運(yùn)算的數(shù)的有效位的個(gè)數(shù))。若左移第n次產(chǎn)生的余數(shù)為負(fù)霞赫,需加上除數(shù)使余數(shù)為正腮介。余數(shù)的符號(hào)與被除數(shù)的符號(hào)一致。

補(bǔ)碼一位除

補(bǔ)碼一位除設(shè)計(jì)到校正問(wèn)題端衰,此處只針對(duì)精度不嚴(yán)格的除法叠洗。

運(yùn)算:補(bǔ)碼雙符號(hào)位的加減。

規(guī)則:被除數(shù)(余數(shù))與除數(shù)同號(hào)靴迫,被除數(shù)(余數(shù))-除數(shù)惕味,若異號(hào),被除數(shù)(余數(shù))+除數(shù)玉锌;新生成的余數(shù)如果與除數(shù)同號(hào)名挥,商1,結(jié)果左移一位主守;若新生成的余數(shù)如果與除數(shù)異號(hào)禀倔,商0,結(jié)果左移一位参淫。如此往復(fù)救湖,直到左移發(fā)生了n次(即被除數(shù)、除數(shù)的有效位個(gè)數(shù))涎才。

值得注意的是:最后一次上商鞋既,無(wú)論余數(shù)與除數(shù)是否同號(hào),均商1耍铜。

到了現(xiàn)在邑闺,可以發(fā)現(xiàn),原碼的乘除沒(méi)有符號(hào)位直接參與運(yùn)算棕兼,因而都是對(duì)絕對(duì)值進(jìn)行操作的陡舅。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市伴挚,隨后出現(xiàn)的幾起案子靶衍,更是在濱河造成了極大的恐慌灾炭,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颅眶,死亡現(xiàn)場(chǎng)離奇詭異蜈出,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)帚呼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門掏缎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人煤杀,你說(shuō)我怎么就攤上這事眷蜈。” “怎么了沈自?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵酌儒,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我枯途,道長(zhǎng)忌怎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任酪夷,我火速辦了婚禮榴啸,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘晚岭。我一直安慰自己鸥印,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布坦报。 她就那樣靜靜地躺著库说,像睡著了一般。 火紅的嫁衣襯著肌膚如雪片择。 梳的紋絲不亂的頭發(fā)上潜的,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音字管,去河邊找鬼啰挪。 笑死,一個(gè)胖子當(dāng)著我的面吹牛嘲叔,可吹牛的內(nèi)容都是我干的脐供。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼借跪,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了酌壕?” 一聲冷哼從身側(cè)響起掏愁,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤歇由,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后果港,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沦泌,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年辛掠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谢谦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡萝衩,死狀恐怖回挽,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情猩谊,我是刑警寧澤千劈,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站牌捷,受9級(jí)特大地震影響墙牌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜暗甥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一喜滨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧撤防,春花似錦虽风、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至剥懒,卻和暖如春内舟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背初橘。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工验游, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人保檐。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓耕蝉,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親夜只。 傳聞我的和親對(duì)象是個(gè)殘疾皇子垒在,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容

  • 定點(diǎn)小數(shù)運(yùn)算 來(lái)自:http://www.eepw.com.cn/article/17893.htm 在DSP世界...
    郝宇峰閱讀 9,159評(píng)論 0 2
  • 計(jì)算機(jī)的源頭 日常生活中,我們廣泛采用十進(jìn)制計(jì)數(shù)法扔亥。10是十進(jìn)制計(jì)數(shù)法的基數(shù)场躯,這也是十進(jìn)制中“十”的由來(lái)谈为。 十進(jìn)制...
    Jack_Cui閱讀 2,579評(píng)論 0 3
  • 本文是對(duì)論文《The Z1: Architecture and Algorithms of Konrad Zuse...
    逸之閱讀 4,353評(píng)論 15 12
  • 錯(cuò)誤 作者:鄭愁予 我打江南走過(guò) 那等在季節(jié)里的容顏如蓮花的開落 東風(fēng)不來(lái),三月的柳絮不飛 你底心如小小的寂寞的城...
    雨瞳FJY閱讀 145評(píng)論 0 0
  • 一個(gè)到處布滿了書的家踢关,可以讓孩子成為一個(gè)讀書愛(ài)好者伞鲫。你應(yīng)該買些什么樣的書?去問(wèn)問(wèn)你的孩子签舞。如果他們太小而不能有所偏...
    你想看的World閱讀 267評(píng)論 0 1