java 筆記
源碼
將最高位表示符號位0正1負其余代表數值本身的絕對值
+7 源碼00000111
-7 源碼10000111
問題
+0源碼 00000000
——0源碼 10000000
表示方式不唯一,所以計算機中不采用這種方式
反碼
一個數為正。則它的反碼與源碼相同;一個數為負。則符號位為1。其余都是對源碼取反
+7 反碼 00000111
——7 反碼 11111000
問題
+0 反碼 00000000
——0 反碼 11111111
計算機中也不采用這種方式
補碼
利用溢出,我門可以將減法變成加法。
對于10進制 9-4=5
因為4+6=10
我們將6作為4的補數。將上面的減法變成加法
9+6=15
去掉高位1 得到5
一個字節表示一個數1個字節有8位超過就進1
一個數為正源碼。反碼。補碼相同。一個數為負。則符號位為1。其余各位對源碼取反。然后整個數加1。
+7 00000111
——7 11111000
11111001
+0 00000000
_0 11111111 加1
100000000 丟棄最高位
00000000