帶符號數的補碼


帶符號數的補碼

email:778138708@qq.com

  • 正數的補碼與其原碼相同,最高位為符號位,其他各位為數值位。
  • 負數的補碼為它的反碼加1。

[+0] = [+0] = 00000000
[-0] = [-0] + 1 = 11111111 + 1 = 00000000

帶符號數的補碼表示的數值范圍

1000 0001B為-127的補碼
1000 0000B為-128的補碼

帶符號數補碼的特點

  • 0的補碼表示是唯一的,沒有+0和-0之分。
  • 一個字節的有符號二進制數的補碼所能表示的范圍為:-128 ~ +127。
  • 字的補碼表示范圍為:-32768 ~ +32767。

帶符號數補碼的位權

-128的補碼為1000 0000B
一個字節的帶符號數的補碼的位權

-27 26 25 24 23 22 21 20
-128 64 32 16 8 4 2 1

例 通過補碼求真值,補碼10010101B = -27 + 24 + 22 + 20 = -107D

比較無符號數和有符號數的位權

  • 無符號數的位權
27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1

有符號數補碼11101010的真值為:-27 + 26 + 25 + 23 + 21 = -22D
有符號數補碼01101010的真值為:26 + 25 + 23 + 21 = 106D

補碼轉換為真值

  • 補碼轉為原碼,求真值:再次取補得到它的原碼,再轉換為真值。

例 已知[X] = 11101010,求X的真值。
解:
原碼為:10010101 + 1 = 10010110
真值為:-(24 + 22 + 21)= -22

  • 利用補碼的位權,求真值。

補碼11101010的真值 = -27 + 26 + 25 + 23 + 21 = -22D


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM