CPU 中的加法器,為什么可以連同符號(hào)位一起運(yùn)算?
一、前言
計(jì)算機(jī)最喜歡的數(shù)字就是 0 和 1,在 CPU 的世界中,它只認(rèn)識(shí)這兩個(gè)數(shù)字,即使是強(qiáng)大的操作系統(tǒng),也都是由 0 和 1 組成的。
作為一名軟件開(kāi)發(fā)者,入門(mén)學(xué)習(xí)的內(nèi)容可能就是認(rèn)識(shí)這 2 個(gè)既簡(jiǎn)單、又強(qiáng)大的數(shù)字。但是大部分人,對(duì)于二進(jìn)制、二進(jìn)制計(jì)算、原碼、反碼以及補(bǔ)碼的認(rèn)識(shí),仍處于機(jī)械的強(qiáng)制記憶階段。尤其是對(duì)一些編碼和計(jì)算,仍然處于模糊的認(rèn)識(shí)階段,例如:
CPU 是如何表示負(fù)數(shù)的?
為什么補(bǔ)碼可以用來(lái)表示負(fù)數(shù)?
一個(gè) 8 位的二進(jìn)制數(shù),最小值為什么是 -128,而不是 -127?
CPU 中的加法器,為什么可以連同符號(hào)位一起運(yùn)算?
這篇文章我們就來(lái)聊聊這個(gè)最最基礎(chǔ)的內(nèi)容,幫助你來(lái)理解二進(jìn)制計(jì)算的相關(guān)內(nèi)容,看完這篇文章之后,不僅知其然,更能知其所以然!
PS: 這里有點(diǎn)高調(diào)了,最終的所以然部分,應(yīng)該涉及到數(shù)學(xué)證明這一層次了,本文并不會(huì)涉及到求證過(guò)程。
二、從十進(jìn)制到二進(jìn)制
1. 十進(jìn)制
作為數(shù)學(xué)計(jì)算能力強(qiáng)大的中國(guó),10 以內(nèi)的加減法,應(yīng)該是在幼兒園階段就完成了。如果你不屬于這個(gè)范圍,說(shuō)明你上的是假幼兒園。
我們來(lái)快速?gòu)?fù)習(xí)一下關(guān)于十進(jìn)制運(yùn)算的一些基本知識(shí):
每一個(gè)數(shù)位上包括的數(shù)字為 0 到 9;
每一個(gè)數(shù)位上的數(shù),是它右側(cè)數(shù)位的 10 倍;
兩個(gè)數(shù)相加時(shí),相同數(shù)位上的數(shù)相加之和如果大于等于 10,就向前進(jìn) 1 位,即:滿十進(jìn)一;
具體來(lái)看就是:
從右數(shù)第一個(gè)位數(shù)(個(gè)位)上的數(shù)字代表多少個(gè) 1;
從右數(shù)第二個(gè)位數(shù)(十位)上的數(shù)字代表多少個(gè) 10;
從右數(shù)第三個(gè)位數(shù)(百位)上的數(shù)字代表多少個(gè) 100;
從右數(shù)第四個(gè)位數(shù)(千位)上的數(shù)字代表多少個(gè) 1000;
十進(jìn)制的數(shù),可以使用后綴字母 D 來(lái)表示,也可以省略。例如:十進(jìn)制的 1234 這個(gè)數(shù)字,個(gè)位上的數(shù)是 4, 十位上的數(shù)是 3, 百位上的數(shù)是 2,千位上的數(shù)是 1(一般是從最右側(cè)的個(gè)位說(shuō)起),每一個(gè)數(shù)位上的數(shù)比它右側(cè)大十倍。如下圖:
十進(jìn)制數(shù)據(jù),也稱(chēng)作基于十的表示法。
2. 二進(jìn)制
那么對(duì)于二進(jìn)制呢?直接套用上面十進(jìn)制的概念,然后把 10 換成 2 即可(目前先忽略符號(hào)位):
每一個(gè)數(shù)位上包括的數(shù)字為 0 和 1;
每一個(gè)數(shù)位上的數(shù),是它右側(cè)數(shù)位的 2 倍;
兩個(gè)數(shù)相加時(shí),相同數(shù)位上的數(shù)相加之和如果大于等于 2,就向前進(jìn) 1 位,即:滿二進(jìn)一;
具體來(lái)看就是:
從右數(shù)第一個(gè)位數(shù)上的數(shù)字代表多少個(gè) 1;
從右數(shù)第二個(gè)位數(shù)上的數(shù)字代表多少個(gè) 2;
從右數(shù)第三個(gè)位數(shù)上的數(shù)字代表多少個(gè) 4;
從右數(shù)第四個(gè)位數(shù)上的數(shù)字代表多少個(gè) 8;
記住幾個(gè)重點(diǎn):二進(jìn)制數(shù)中只包含 0 和 1 兩個(gè)數(shù)字,在相加時(shí)滿二進(jìn)一。
在十進(jìn)制中,每一個(gè)數(shù)位我們給它進(jìn)行了專(zhuān)門(mén)的命名(個(gè)位、十位、百位...),但是二進(jìn)制沒(méi)有類(lèi)似的命名。
二進(jìn)制的數(shù),使用后綴字母 B 來(lái)表示,例如:二進(jìn)制的 1111B 這個(gè)數(shù)字,用圖來(lái)表示權(quán)重如下:
換算成十進(jìn)制數(shù)就是 15(1 * 8 + 1 * 4 + 1 * 2 + 1 * 1 = 15)。
在二進(jìn)制中,每一位稱(chēng)為一個(gè)比特(bit),如果用 8 個(gè) bit 來(lái)表示一個(gè)二進(jìn)制數(shù),最小值是 0000_00000,最大值是 1111_1111;
如果用 16 個(gè) bit 來(lái)表示一個(gè)二進(jìn)制數(shù),最小值是 0000_0000_0000_0000,最大值是 1111_1111_1111_1111。(為了便于觀察,每 4 個(gè) bit 之間,加上了分隔符)
在早期的計(jì)算機(jī)中,8 位的處理器很常見(jiàn),于是就給它一個(gè)專(zhuān)門(mén)的名字:字節(jié)(Byte)。16 位的二進(jìn)制數(shù)就是 2 個(gè)字節(jié),也稱(chēng)作:字(Word)。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
最新活動(dòng)更多
-
6月20日立即下載>> 【白皮書(shū)】精準(zhǔn)測(cè)量 安全高效——福祿克光伏行業(yè)解決方案
-
7月3日立即報(bào)名>> 【在線會(huì)議】英飛凌新一代智能照明方案賦能綠色建筑與工業(yè)互聯(lián)
-
7月22-29日立即報(bào)名>> 【線下論壇】第三屆安富利汽車(chē)生態(tài)圈峰會(huì)
-
7.30-8.1火熱報(bào)名中>> 全數(shù)會(huì)2025(第六屆)機(jī)器人及智能工廠展
-
7月31日免費(fèi)預(yù)約>> OFweek 2025具身機(jī)器人動(dòng)力電池技術(shù)應(yīng)用大會(huì)
-
免費(fèi)參會(huì)立即報(bào)名>> 7月30日- 8月1日 2025全數(shù)會(huì)工業(yè)芯片與傳感儀表展
推薦專(zhuān)題
- 1 AI 眼鏡讓百萬(wàn) APP「集體失業(yè)」?
- 2 大廠紛紛入局,百度、阿里、字節(jié)搶奪Agent話語(yǔ)權(quán)
- 3 深度報(bào)告|中國(guó)AI產(chǎn)業(yè)正在崛起成全球力量,市場(chǎng)潛力和關(guān)鍵挑戰(zhàn)有哪些?
- 4 上海跑出80億超級(jí)獨(dú)角獸:獲上市公司戰(zhàn)投,干人形機(jī)器人
- 5 國(guó)家數(shù)據(jù)局局長(zhǎng)劉烈宏調(diào)研格創(chuàng)東智
- 6 下一代入口之戰(zhàn):大廠為何紛紛押注智能體?
- 7 百億AI芯片訂單,瘋狂傾銷(xiāo)中東?
- 8 Robotaxi新消息密集釋放,量產(chǎn)元年誰(shuí)在領(lǐng)跑?
- 9 格斗大賽出圈!人形機(jī)器人致命短板曝光:頭腦過(guò)于簡(jiǎn)單
- 10 “搶灘”家用機(jī)器人領(lǐng)域,聯(lián)通、海爾、美的等紛紛入局