原碼反碼補碼的計算方法

2022-05-31 01:42:09 字數 596 閱讀 7138

原碼反碼補碼具體的講解可以看看這篇:

總結一下計算方法

對於a-b,

首先,將a、b轉換成二進位制數,這時候的二進位制數是無符號的。計算a無 - b無

原碼:將無符號數首位當成符號位,正數置為0,負數置為1。這裡要注意b的大小不應該超過原碼可以表示的範圍,否則轉換出來的原碼是錯誤的。計算a原+b原

反碼:在原碼的基礎上,將函式的非符號位取反,符號位不變。計算a反+b反

補碼:在反碼的基礎上,負數加1,正數不變;

或者在原碼的基礎上,對符號位後面(n-1)位的數字取模(假如後面(n-1)位表示數值,那麼模為2^(n-1),用二進位制表示就是首位1跟著n-1個0)

這裡的模就是mod後面的那個數,c的計算符是%

比如,a=3,b=5,計算a-b

轉換成二進位制無符號數a無=0101,b無=0111,這時仍要計算0101 - 0111(不要計算結果,是錯誤的)

轉換成原碼a反=0101,b反=(-0111)=1111,這時要計算0101+1111(不要計算結果,是錯誤的)

轉換成補碼a補=0101,b補=1001,這時計算0101+1001=1110(這是a-b的補碼表示,轉換成原碼是1010,即-2,正確)

原碼, 反碼, 補碼的基礎概念和計算方法

在探求為何機器要使用補碼之前,讓我們先了解原碼,反碼和補碼的概念.對於乙個數,計算機要使用一定的編碼方式進行儲存.原碼,反碼,補碼是機器儲存乙個具體數字的編碼方式.原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值.比如如果是8位二進位制 1 原 0000 0001 1 原 1000 ...

原碼, 反碼, 補碼的基礎概念和計算方法

在探求為何機器要使用補碼之前,讓我們先了解原碼,反碼和補碼的概念.對於乙個數,計算機要使用一定的編碼方式進行儲存.原碼,反碼,補碼是機器儲存乙個具體數字的編碼方式.原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值.比如如果是8位二進位制 1 原 0000 0001 1 原 1000 ...

原碼, 反碼 補碼的計算

在計算機內,有符號數有3種表示法 原碼 反碼和補碼。所有資料的運算都是採用補碼進行的。原碼 原碼就是符號位加上真值的絕對值,即最高位為符號位,0 表示正,1 表示負,其餘位表示數值的大小。3 00000011 3 10000011反碼 正數的反碼與其原碼相同 負數的反碼是對其原碼逐位取反,但符號位除...