二進制加法運演算法則
發布時間: 2025-03-22 04:15:22
❶ 二進制加減法運演算法則
減法運算其實是可以由加法運算替代的,我們上面已經介紹過了無符號和補碼的非,其實很多CPU是沒有減法運算器的,它們都是將減數進行逆運算以後送入加法器,然後進行加法運算,這樣得出來的結果就是減法運算最終的結果。
比如我們考慮一種簡單的情況,當w = 4時的無符號減法運算,對於 5 - 4這個減法運算來說,我們可以由 5 + 4-1(其中4-1是4的逆元的意思,不是1/4的意思)來替代這個減法運算。
為了更加直觀,LZ帶各位來算一下,首先4的逆元根據上面的公式可以得到為 4-1= 24- 4 = 12 。那麼我們現在需要對5和12進行加法運算,它們的位表示分別為 0101和1100,結果為10001,也就是十進制17的位表示。不過由於我們的w = 4,因此截斷之後結果為0001,也就是十進制的1。最終可以得到 5 - 4 = 1。
對於5 - 4來說,是考慮的結果為正的情況。或許有的猿友會對結果為負或者說是無符號數溢出的情況下有疑問,因此LZ這里對這種情況也做一個簡單的介紹。我們考慮一個簡單的計算 0 - 1,我們可以得到1-1= 24- 1 = 15。此時對0和15進行加法運算,他們的位表示分別為0000和1111,結果為1111。
看到這里估計有的猿友會奇怪了,這怎麼回事,0 - 1 = 15?
當然不是,這個結果其實是正確的。考慮使用補碼編碼來解析1111這個位表示,它代表的值就是-1。15是1111這個位表示在無符號編碼情況下的解析結果。
因此LZ這里也給出一個公式,就是對於兩個整數x和y來說,x - y = x + y-1。這里需要特別說明的是,這個公式代表的意義是位表示,而不是實際的數值。
熱點內容