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