无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

算術(shù)運算符補碼由來

2022-12-13 08:23 作者:明德?lián)P易老師  | 我要投稿

需要看對應(yīng)的視頻,請點擊視頻編號:001100000060

1、在FPGA甚至計算機系統(tǒng)中,所有數(shù)據(jù)的保存方式都是補碼形式的,

2、本視頻主要講解正數(shù)和負(fù)數(shù)的補碼計算以及在數(shù)據(jù)電路中的處理方式。
3、這是ALTERA和VIVADO視頻



補碼的由來

FPGA實現(xiàn)各種算法的時候,首要的就是保證運算結(jié)果的正確性,否則一切毫無意義。

在分析加加法運算符和減法運算符的時候可以發(fā)現(xiàn)保存結(jié)果的信號位寬是否合理對正確性與否有很大的影響。

例如下面的加法運算:

表1.3- 5加法運算結(jié)果


從上表可以發(fā)現(xiàn),如果不保留進(jìn)位,當(dāng)加法出現(xiàn)進(jìn)位的時候計算的結(jié)果是不正確的,

只有保留了進(jìn)位計算的結(jié)果才是正確的。由此可以得出一個結(jié)論:使用加法的時候,為了保證結(jié)果的正確性,

必須保存進(jìn)位,也就是結(jié)果要擴展位寬。

例如兩個8位的數(shù)相加,則結(jié)果要擴展一位,將位寬設(shè)定為9位。

接著再來分析一下減法運算,如下表所示例子:


表1.3- 6減法運算結(jié)果


注意表中和2’b00-2’b01,結(jié)果是2’b11,對應(yīng)的十進(jìn)制值為3,但期望的結(jié)果是“-1”。

同樣的道理,2’b01 - 2’b11,結(jié)果是2’b10,對應(yīng)的十進(jìn)制值為2,而期望的結(jié)果是“-2”,

所以上面的結(jié)果是不正確的。

當(dāng)期望結(jié)果中有正負(fù)之分時,可以通過增加一個符號位來區(qū)別結(jié)果的正負(fù)。業(yè)內(nèi)約定的表示方法為,

最高位為0時表示正數(shù),最高位值為1表示負(fù)數(shù)。符號位之后的數(shù)值用低2位表示,結(jié)果如下表:

表1.3- 7增加符號位的減法運算結(jié)果


從上表中可以看出增加符號位后還是會存在部分運算結(jié)果與預(yù)期不符合的問題。

例如表中的2’b00-2’b01,結(jié)果是3’b111,對應(yīng)的十進(jìn)制值為-3,但期望的結(jié)果是“-1”。

所以上面的結(jié)果仍然是不正確的。


現(xiàn)在,重新對二進(jìn)制數(shù)“000~111”進(jìn)行如下轉(zhuǎn)換:

a.? ?? ? 正數(shù):保持不變

b.? ?? ?負(fù)數(shù):符號位保持不變,數(shù)值取反加1。

也就是說,如果是正數(shù)“+1”,之前是用“001”表示,現(xiàn)在仍然是用“001”表示。

如果是負(fù)數(shù)“-1”,之前是用“101”表示,現(xiàn)在則是用“111”表示。負(fù)數(shù)“-3”,

之前是用“111”表示,現(xiàn)在則是用“101”表示。這種表示方式就是補碼表示方式。

改為用補碼來表示后,再來分析下結(jié)果:


表1.3- 8補碼表示減法運算結(jié)果


可以看到上表的結(jié)果全部都是正確的,與預(yù)期全部一致。這一過程雖然完全沒有對代碼進(jìn)行任何改變,

但通過更改數(shù)據(jù)的定義就實現(xiàn)了正確的結(jié)果。


在之前的討論中,加數(shù)、被加數(shù)、減數(shù)和被減數(shù)的運算過程都沒有使用有符號數(shù)。

現(xiàn)在使用有符號數(shù)的補碼重新對其進(jìn)行表示。

假設(shè)加數(shù)、被加數(shù)、減數(shù)和被減數(shù)都是2位(范圍為-2~1),考慮到進(jìn)位和借位原因,

結(jié)果用3位來表示(范圍為-4~3)。因為結(jié)果位寬變?yōu)?位,所以減數(shù)和被減數(shù)都擴展成用3位表示,

列出下表:


表1.3- 9補碼表示運算結(jié)果


總結(jié)運算步驟如下:

1.?根據(jù)“人的常識”,預(yù)計結(jié)果的最大最小值,從而確定結(jié)果的信號位寬。

2.?將加數(shù)、減數(shù)等數(shù)據(jù),位寬擴展成結(jié)果位寬一致。

3.?按二進(jìn)制加減法進(jìn)行計算。

通過以上方式,得到的就是補碼的結(jié)果。事實上,在FPGA甚至計算機系統(tǒng)中,

所有數(shù)據(jù)的保存的方式都是補碼的形式。如果讀者想要了解更多關(guān)于補碼的內(nèi)容可以參閱相關(guān)資料。

相關(guān)視頻:https://www.bilibili.com/video/BV1yf4y1R7gH?p=14


相關(guān)視頻:https://www.bilibili.com/video/BV1yf4y1R7gH?p=14



算術(shù)運算符補碼由來的評論 (共 條)

分享到微博請遵守國家法律
大英县| 石家庄市| 嵩明县| 达拉特旗| 墨江| 桦甸市| 芒康县| 环江| 南阳市| 建平县| 永修县| 揭西县| 乌海市| 当涂县| 盐亭县| 陈巴尔虎旗| 庐江县| 寿阳县| 红河县| 牙克石市| 昌平区| 饶平县| 阳信县| 郑州市| 清水河县| 东安县| 沙田区| 潞西市| 沙河市| 哈巴河县| 老河口市| 个旧市| 阜南县| 上林县| 黄山市| 县级市| 永宁县| 固始县| 舞钢市| 高青县| 滁州市|