为什么计算机存储的是二进制补码?
原碼:
最高位為符號位。。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的存儲問題
最終:計算機的數據存儲時以補碼的方式進行存儲。
轉載于:https://www.cnblogs.com/wangjinshan/p/7056414.html
總結
以上是生活随笔為你收集整理的为什么计算机存储的是二进制补码?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内置函数与匿名函数
- 下一篇: 安装elasticsearch5.4.1