补码原理一个字节存储数值的范围如何计算
生活随笔
收集整理的這篇文章主要介紹了
补码原理一个字节存储数值的范围如何计算
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
為什么二進制負數在計算機中的存儲需要使用補碼?一個字節存儲數值范圍為什么是-128~127?下面我們開始學習。
1.了解補碼
什么是原碼、反碼和補碼?負數在計算機中的二進制表示是怎樣的?(戳這里查看)
2.補碼原理
負數為什么要用補碼表示?(戳這里查看)
從引用鏈接中我們也不難發現補碼有以下特性:
- 原碼與補碼相加,和為模。
- 正數的補碼等于其本身。
- 補碼正零、負零表示方法相同。
3.一個字節存儲數值范圍
一個字節有八位,能存儲的最大正數為01111111,其中首位0是符號位,表示數值為正。數值部分轉換為十進制為:
一個字節能存儲的最小負數的補碼為10000000。由補碼的補碼為原碼可得:
10000000(求反碼)——>11111111(求補碼)——>1 00000000(化為十進制)——>-128
所以一個字節存儲數值范圍是-128~127。
為描述簡潔,下面只考慮四位。下圖(引用自)列出了四位二進制數所有可能表示數字的原碼、反碼和補碼。
我們可以看出,正零和負零的原碼是不同的,但存儲的補碼是相同的(或者說用1 0000表達了-0)。所以,對于補碼來說,就多出了1000這種表達方式。雖然-8的原碼超出了四位能表達的范圍,但是其補碼卻能用四位表達,而計算機存儲的正是補碼。所以,存儲范圍下限的絕對值比上限大1。一個字節同理。
總結
以上是生活随笔為你收集整理的补码原理一个字节存储数值的范围如何计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Simulink工作区无法保存To wo
- 下一篇: Matlab归一化函数(mapminma