對於二進位制原碼反碼和補碼的理解

2021-09-23 10:19:00 字數 1059 閱讀 2746

***x ***x  第一位是符號位,0代表正數,1代表負數。

正數的原碼,反碼,補碼一樣。

例如  3  的原碼是:0000 0011;反碼也是:0000 0011;補碼還是:0000 0011。

負數的原碼,反碼,補碼不一樣。所以引入反碼和補碼的概念完全是為了負數。因為計算機中沒有減法,只有加法。

例如 -2 的原碼是:1000 0010;反碼是除了符號位全部取反:1111 1101;補碼是反碼加一:1111 1110。

1、計算機中並沒有真正意義上的減法,只有加法,減法會變成補碼的加法。

2、計算機中,數值一律是用補碼表示和儲存的。

3、加法都是通過補碼計算再還原的。

通過以上三點列舉以下例子:

原碼相加      -取反->        反碼相加        -+1->           補碼相加         =      補碼

例1:2+3 -->0000 0010+0000 0011 --> 0000 0010+0000 0011 -->0000 0010+0000 0011= 0000 0101

例2:2-3 --> 0000 0010+1000 0011 --> 0000 0010+1111 1100 --> 0000 0010+1111 1101= 1111  1111

例3:3-2 --> 0000 0011+1000 0010 --> 0000 0011+1111 1101 --> 0000 0011+1111 1110 = 0000 0001

例4:-3-2--> 1000 0011+1000 0010 --> 1111 1101 +1111 1100 --> 1111 1110 +1111 1101 = 1111 1011

對以上四個補碼還原:

例1:0000 0101的原碼還是0000 0101 = 5

例2:1111 1111的原碼 = 補碼減1取反 = 1111 1110取反 = 1000 0001 = -1

例3:0000 0001的原碼還是0000 0001 = 1

例4:1111 1011的原碼 = 補碼減1取反 = 1111 1010取反 = 1000 0101 = -5

二進位制的原碼補碼和反碼

資料在計算機是以二進位制的形式來儲存的,按照資料的補碼來儲存的。正數的原碼 反碼 補碼都是相同的。負數的補碼就是它的相反數的原碼的各個位取反後,再 1得到的。0的原碼,補碼都為0。1個位元組可以表示2的8次方 256個數,按照正負數劃分就把它表示成範圍 128 127。二進位制的八位數裡邊用最高位表...

二進位制的原碼 反碼 補碼

如何表示二進位制數的正負呢 通常採用的方法是在二進位制數的前面加一位符號位,符號位為0表示這個數是正數,符號位位1表示這個數字負數,這種形式的數就稱為原碼。為什麼需要二進位制補碼 在做減法時,如果兩個數時用原碼表示的,則首先需要比較兩數絕對值的大小,然後以絕對值大的乙個數作為被減數 絕對值小的乙個作...

二進位制原碼 反碼 補碼詳解

原碼 原碼是指將最高位作為符號位 0表示正,1表示負 其它數字位代表數值本身的絕對值的數字表示方式。例如 數字6 在計算機中原碼表示為 0 000 0110 其中,第乙個數字0是符號位,0表示正數,0 000110是數字6的二進位制資料表示。數字 6 在計算機中原碼表示為 1 000 0110 以上...