關於 -128 的補碼問題


在八位二進制下,因為有一位是符號位,原碼和反碼只能表示0到127,-0到-127,所以-128不能用原碼或反碼表示。

按這種說法,128因為無法用八位二進制下的原碼表示,則-128的八位二進制下的補碼也是不存在的。

但是,為了在數的表示上消除編碼映射的不唯一性,所以通過人為的定義對轉換的10000000強制認定為-128。

因此,-128八位二進制下的原碼和反碼不存在,而八位二進制下的補碼為10000000。

 

 

 

 

擴展資料:

1.原碼的求法:

(1)對於正數,轉化為二進制數,在最前面添加一符號位(這是規定的),用1表示負數,0表示正數。

如:0000 0000是一個字節,其中左邊第一個0為符號位,表示是正數,其它七位表示二進制的值.其實,機器不管這些,什么符號位還是值,機器統統看作是值來計算。正數的原碼、反碼、補碼是同一個數。

(2)對於負數,轉化為二進制數,前面符號位為1。表示是負數。

計算原碼只要在轉化的二進制數前面加上相應的符號位就行了.

2.反碼的求法:對於負數,將原碼各位取反,符號位不變.

3.補碼的求法:對於負數,將反碼加上二進制的1即可,也就是反碼在最后一位上加上1就是補碼了。

參考資料:

百度百科-原碼

百度百科-反碼

百度百科-補碼


免責聲明!

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



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