二十一、补码 (计算机最小的单位为位)
正數的補碼為原數
負數的補碼為取反后加1
注:-25補碼為 11100111,負號前全部補1
?
1. 補碼
計算機最小的單位是位
計算機中的數是用二進制來表示的,數的符號也是用二進制表示的。
多數計算機的整數采用補碼表示法。
? ? 補碼表示法:
?? ?正數 數的最高有效位為0表示符號為正,數的其余部分則表示數的絕對值。
?? ?負數 絕對值按位取反,然后末位加1。
?? ?0 ?? ?00000000
?? ?-128?? ?10000000
?? ?8位補碼表示范圍為-128 ~ +127
正數表示:直接寫出77的二進制,注意最大值為127,最高位為0。
負數表示:先寫出正77的二進制,然后依次取反,最后末尾加1,如圖。
?
2.?補碼符號擴展
符號擴展:一個數從位數較少擴展到位數較多的過程。
對于補碼表示的數,正數的符號擴展應該在前面補0,負數的符號擴展則應該在前面補1。
8位放入16位,正數高8補0,負數高8補1.
負數驗證:先加1,再取反。?
?
3. 補碼加減運算
求補運算:對一個二進制數按位求反后在末位加1的運算稱為求補運算。(例如:正117轉負117的過程)
互補關系:正數求補后變負數,負數求補后變正數。(正數轉負數,負數轉正數)
補碼加法規則: [X+Y](補) = [X]補 + [Y]補
補碼減法規則: [X-Y](補) = [X]補 + [-Y]補(25-32看做25+(-32),所以取32的補碼再相加)
注意:補碼運算時,遇到最高位進位時,選擇自動丟失,不會影響運算結果。
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的二十一、补码 (计算机最小的单位为位)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为云ModelArts
- 下一篇: Android:Android NDK项