文章目錄
- 計算機記憶體數值存儲方式
- 原碼
- 反碼
- 補碼
- 主要原因:
- 有符号和無符号的差別:
- 有符号和無符号整型取值範圍
計算機記憶體數值存儲方式
原碼
一個數的原碼(原始的二進制碼)有如下特點:
最高位作為符号位,0表示正,為1表示負。
其他的數值部分就是數值本身絕對值的二進制數。
負數的原碼是在其絕對值的基礎上,最高位變為1
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0gTMx81dsQWZ4lmZf1GLlpXazVmcvwFciV2dsQXYtJ3bm9CX9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SN5kzM2EjZiJ2N3QTZiJmMzYzXzQTN0kDMyIzLclDMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
反碼
對于正數,反碼與原碼相同
對于負數,符号位不變,其他部分取反(1變0,0變1)
補碼
在計算機系統中,數值一律用補碼來存儲
主要原因:
統一了零的編碼
将符号位和其它位統一處理
将減法運算轉變為加法運算
兩個用補碼表示的數值相加時,如果最高位(符号位)有進位,則進位被舍棄
補碼特點:
對于正數,原碼、反碼、補碼相同
對于負數,其補碼為它的反碼加1
補碼符号位不動,其他位求反,最後整個數加1,得到原碼
有符号和無符号的差別:
有符号:最高位為符号位,0代表正數,1代表負數
無符号:最高位不是符号位,而就是數的一部分,無符号數不可能是負數,資料存儲在計算機中不存在符号位
無符号整型數是不帶正負表示符号的整型數。