CPU 中的加法器,為什么可以連同符號(hào)位一起運(yùn)算?
3. 十六進(jìn)制加法
第 0 位:E + C,結(jié)果為 26,但是十六進(jìn)制中沒(méi)有 26 這個(gè)數(shù)字,因此需要向左側(cè)的高位進(jìn) 1,于是第 0 位就剩下 26 - 16 = A。
第 1 位:A + 1 等于 B,再加上進(jìn)位 1,結(jié)果就是 C,十六機(jī)制中有這個(gè)數(shù)字。
四、把負(fù)數(shù)計(jì)算轉(zhuǎn)換成正數(shù)計(jì)算
1. 原碼
原碼(true form)是一種計(jì)算機(jī)中對(duì)數(shù)字的二進(jìn)制定點(diǎn)表示方法。原碼表示法在數(shù)值前面增加了一位符號(hào)位(即最高位為符號(hào)位):正數(shù)該位為0,負(fù)數(shù)該位為1(0有兩種表示:+0和-0),其余位表示數(shù)值的大小。
例如,用 8 個(gè) bit (8 位二進(jìn)制數(shù))來(lái)表示一個(gè)數(shù),+11 的原碼為 0000_1011,-11 的原碼就是 1000_1011。
2. 把負(fù)數(shù)計(jì)算變成正數(shù)計(jì)算
我們都知道,CPU 中有加法器,好像從來(lái)沒(méi)有聽(tīng)說(shuō)過(guò)“減法器”。例如計(jì)算 5 + 8,轉(zhuǎn)換成二進(jìn)制來(lái)計(jì)算:
再來(lái)計(jì)算一下減法:5 - 8,對(duì)于 CPU 來(lái)說(shuō),只會(huì)計(jì)算 5 + 8, 但是不會(huì)計(jì)算 5 - 8。
但是可以轉(zhuǎn)換一下思路,把減法變成加法 5 + (-8),這樣不就可以計(jì)算了嗎?于是計(jì)算機(jī)先驅(qū)者就發(fā)明了反碼:
正數(shù)的反碼:保持原碼不變;
負(fù)數(shù)的反碼:原碼中符號(hào)位不變,其余全部取反(-8 的原碼是 1000_1000,反碼就是:1111_0111);
于是 5 + (-8)的計(jì)算過(guò)程就是:
此時(shí),就完美解決了減法問(wèn)題,那么乘法(多加幾次)、除法(多減幾次)問(wèn)題也就跟著解決了。至于如何從數(shù)學(xué)的角度來(lái)證明,那就要問(wèn)那些數(shù)學(xué)家了!
3. 新問(wèn)題:如何表示0?
我們現(xiàn)在可以小結(jié)一下反碼的表示范圍(記。旱谝晃皇欠(hào)位):
正數(shù)的表示范圍:0000_0000 ~ 0111_1111,也就是十進(jìn)制的 +0 ~ +127 這 128 個(gè)數(shù);
負(fù)數(shù)的表示范圍:1000_0000 ~ 1111_1111,也就是十進(jìn)制的 -127 ~ -0 這 128 個(gè)數(shù);
有沒(méi)有發(fā)現(xiàn)問(wèn)題:怎么存在 +0 和 -0 這兩個(gè)數(shù)?而且他們的編碼還不一樣:+0 對(duì)應(yīng) 0000_0000,-0 對(duì)應(yīng) 1111_1111。
CPU 雖然就是一個(gè)傻瓜,讓它干啥就干啥,但是 CPU 最不能容忍的就是不確定性!我們都知道 +0 == -0 == 0,它們是同一個(gè)數(shù)字,但是在二進(jìn)制編碼中,居然有兩個(gè)編碼來(lái)表示同一個(gè)數(shù)。
偉大的計(jì)算機(jī)先驅(qū)者又做了這樣一個(gè)決定:正數(shù)保持不變,負(fù)數(shù)整體減 1。
也就是說(shuō):符號(hào)位不變,值整體加1,如下:
這樣就成功解決了 -0、+0 的問(wèn)題!
現(xiàn)在 一個(gè) 8 位的二進(jìn)制就可以表示的范圍是:-128 ~ 127,并且中間沒(méi)有任何重復(fù)、遺漏的數(shù)字。
既然每一個(gè)二進(jìn)制表示的值發(fā)生了變化,那么繼續(xù)稱(chēng)之為反碼就不準(zhǔn)確了,此時(shí)給它們一個(gè)新的稱(chēng)呼:補(bǔ)碼,也就是說(shuō):上圖就變成了這樣:
小結(jié)一下補(bǔ)碼的定義:
正數(shù)的補(bǔ)碼:保持原碼不變;
負(fù)數(shù)的補(bǔ)碼:原碼中符號(hào)位不變,其余先全部取反,然后再加1(例如:-8 的原碼是 1000_1000,補(bǔ)碼就是 1111_1000);
此時(shí),我們僅僅是解決了二級(jí)制編碼的表示問(wèn)題,那么:補(bǔ)碼能直接參與運(yùn)算嗎?運(yùn)算結(jié)果會(huì)出現(xiàn)什么問(wèn)題?

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
-
機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹(shù)機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-
存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-
長(zhǎng)安汽車(chē)母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-
豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-
字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-
員工持股爆雷?廣汽埃安緊急回應(yīng)
-
中國(guó)“智造”背后的「關(guān)鍵力量」
-
小米汽車(chē)研發(fā)中心重磅落地,寶馬家門(mén)口“搶人”
最新活動(dòng)更多
-
即日-9.1立即下載>> 【限時(shí)下載】ADI中國(guó)三十周年感恩回饋助力企業(yè)升級(jí)!
-
即日-9.16點(diǎn)擊進(jìn)入 >> 【限時(shí)福利】TE 2025國(guó)際物聯(lián)網(wǎng)展·深圳站
-
10月23日立即報(bào)名>> Works With 開(kāi)發(fā)者大會(huì)深圳站
-
10月24日立即參評(píng)>> 【評(píng)選】維科杯·OFweek 2025(第十屆)物聯(lián)網(wǎng)行業(yè)年度評(píng)選
-
11月27日立即報(bào)名>> 【工程師系列】汽車(chē)電子技術(shù)在線大會(huì)
-
12月18日立即報(bào)名>> 【線下會(huì)議】OFweek 2025(第十屆)物聯(lián)網(wǎng)產(chǎn)業(yè)大會(huì)
推薦專(zhuān)題
- 1 阿里首位程序員,“掃地僧”多隆已離職
- 2 先進(jìn)算力新選擇 | 2025華為算力場(chǎng)景發(fā)布會(huì)暨北京xPN伙伴大會(huì)成功舉辦
- 3 宇樹(shù)機(jī)器人撞人事件的深度剖析:六維力傳感器如何成為人機(jī)安全的關(guān)鍵屏障
- 4 清華跑出具身智能獨(dú)角獸:給機(jī)器人安上眼睛和大腦,融資近20億
- 5 特朗普要求英特爾首位華人 CEO 辭職
- 6 踢館大廠和微軟,剖析WPS靈犀的AI實(shí)用主義
- 7 騰訊 Q2 財(cái)報(bào)亮眼:AI 已成第二增長(zhǎng)曲線
- 8 谷歌吹響AI沖鋒號(hào),AI還有哪些機(jī)會(huì)
- 9 蘋(píng)果把身家押在Siri上:一場(chǎng)輸不起的自我革命
- 10 騰訊米哈游押寶的中國(guó)AI應(yīng)用,正在海外悶聲發(fā)財(cái)