1. 程式人生 > >為什麽計算機存儲的是二進制補碼?

為什麽計算機存儲的是二進制補碼?

我們 方式 其他 2種 存儲 。。 問題: 數據存儲 基礎


原碼:

最高位為符號位。。0代表正數 1 代表負數
+1:0000 0001
-1:1000 0001
+0:0000 0000
-0: 1000 0000

問題:
1.0這個數值在存儲的時候,有2種存儲方式
2.正數和負數相加的時候,結果不是我們所算出的結果(在計算機裏面,只能做加法運算)

1-1 = 1 + -1

1: 0000 0001
-1:1000 0001
加法:10000010 = -2

反碼:符號位不變,其他位進行0和1的對換(為補碼做鋪墊)

結論:正數的反碼和原碼、補碼是一樣的

+1 :0000 0001
-1 : 1000 0001
+0:0000 0000
-0: 1000 0000
-0的反碼:1111 1111

反碼
+1 : 0000 0001
-1 :1111 1110

加法運算 :1111 1111 = -0

解決:加法運算的結果問題

0的存儲沒有解決

補碼:
1.補碼就是在反碼的基礎上加1;
2.正數的反碼和原碼、補碼是一樣的

+1 :0000 0001
-1 :1000 0001
1111 1110
1111 1111

-0: 1000 0000
1111 1111
10000 0000
做加法:+1 + -1(補碼)
0000 0001
1111 1111
10000 0000 -0

+0 : 0000 0000
-0 : 0000 0000
結論:解決了0的存儲問題

最終:計算機的數據存儲時以補碼的方式進行存儲。

為什麽計算機存儲的是二進制補碼?