1. 程式人生 > >補碼轉原數值公式(非常簡單實用的公式)

補碼轉原數值公式(非常簡單實用的公式)

補碼轉原數值公式:~x = -(x+1)

左邊的x指計算機中的二進位制補碼,右邊的x是實際的數值。 正數的補碼就是它本身,很簡單,現在詳細講一下負數的補碼怎麼計算這個數的值。 下面說一下這個公式怎麼用。(以下計算全部以一個位元組為例)

例1. 計算-1的補碼對應的原數值:

-1的原碼是1000 0001 -1的反碼是1111 1110 -1的補碼是1111 1111 當我們只知道一個二進位制字串是某個數x的補碼時,我們要怎麼計算這個數x的值呢? 接下來就可以用上面這個公式了。 首先將x的補碼1111 1111進行取反,則變成了0000 0000,這時候,公式的左邊就求出來了,而0000 0000這個數是0,所以-(x+1)

就是等於0, 所以就可以知道x-1了。這就完成了通過x的補碼1111 1111求出x的值為2了。

例2. x的補碼為1111 1110,這個數x的值是多少?

首先將補碼每一位全部取反,得到0000 0001, 等式左邊這個值~x 的值為1, 所以等式右邊 -(x+1)的值也為1,那麼就可以計算出x的值為-2了,不錯,1111 1110確實就是-2的補碼。

對於很多理工科的同學,尤其是學習過數電和計算機的同學,應該對補碼的計算深感頭痛吧,我每學期的期末考試前都要拾起這些補碼原碼反碼知識,想想就累人。去年期末考試前,因為某個小哥哥教會了我這個神奇又強大 的公式,讓我以後再也不怕計算補碼啦,哈哈哈~ 沒想到今天又要用到這個公式,而且網上居然都沒有計算這個公式的文章,所以乾脆寫篇部落格分享給大家~如有寫的不對的地方,請各位讀者多多指教,不勝感激~