***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 以上...