反碼:正數的反碼為原碼,負數的反碼是原碼符號位外按位取反
補碼:正數的補碼為原碼,負數的反碼是反碼+1
在計算機中用補碼表示資料的原因:如果二進位制第一位是0的話, 代表正數, 1的話代表負數. 比如 -1的表示方法是(以8位數字為例.) 10000001 這就是-1的表示方法, 第乙個1就是符號位. 這種表示方法有乙個致命的缺點, 有兩種方法可以表示0(00000000, 10000000)
。補碼技術可以完美解決上述問題。0的表示方法都是(00000000).
真值與三種機器數間的對照表真值
x[x]原、
[x]反
、[x]補
真值x[x]原
[x]反
[x]補
十進位制二進位制十進位制
二進位制+0
+000
0000 -0
-0000
1000
1111
0000 +1
+001
0001 -1
-0001
1001
1110
1111 +2
+010
0010 -2
-0010
1010
1101
1110 +3
+011
0011 -3
-0011
1011
1100
1101 +4
+100
0100 -4
-0100
1100
1011
1100 +5
+101
0101 -5
-0101
1101
1010
1011 +6
+110
0110 -6
-0110
1110
1001
1010 +7
+111
0111 -7
-0111
1111
1000
1001 +8
- --8
-1000 -
-1000
計算機中的有符號數和無符號數
1.概念 在計算機中,可以區分正負型別的數,成為 有符號數 signed 無正負型別的數 只有整數型別 成為 無符號數 unsigned 簡明的說,無符號說就是其所有的位數都用來表示數值的大小,有符號數除最高位來表示數值的正負外 0表示正數 1表示負數 其餘各位用來表示數值的大小。舉個例子說明一下 ...
雜貨邊角(1) 計算機中有符號數和浮點數表示和運算
1.整數的有符號表示方式 計算機中目前常用的整數型別分為int 32和int 64,以32位為例。計算機中都以補碼形式存放有符號數。正整數的補碼表示和正整數的無符號型別一致,符號位為0 負整數的補碼表示則需要依次經過求反碼,求補碼,舉例如下 對於 4而言,則符號位為1,4的二進位制表示為 000 0...
有符號數和無符號數在計算機中怎麼區分?
確如題主所說,計算機中儲存的任何資料都是二進位制形式,單看資料是無法認定其格式和內容的。計算機要用二進位制編碼來表達數值的符號,最直觀的方法就是符號位。但為了保證基本算術運算在正負數上的一致性,x86計算機對負數採用了特殊的編碼方式,即補碼。為什麼補碼這麼巧妙實現了正負數的加減運算?參見維基百科 補...