在八位二進制下,因為有一位是符號位,原碼和反碼只能表示0到127,-0到-127,所以-128不能用原碼或反碼表示。
按這種說法,128因為無法用八位二進制下的原碼表示,則-128的八位二進制下的補碼也是不存在的。
但是,為了在數的表示上消除編碼映射的不唯一性,所以通過人為的定義對轉換的10000000強制認定為-128。
因此,-128八位二進制下的原碼和反碼不存在,而八位二進制下的補碼為10000000。
擴展資料:
1.原碼的求法:
(1)對於正數,轉化為二進制數,在最前面添加一符號位(這是規定的),用1表示負數,0表示正數。
如:0000 0000是一個字節,其中左邊第一個0為符號位,表示是正數,其它七位表示二進制的值.其實,機器不管這些,什么符號位還是值,機器統統看作是值來計算。正數的原碼、反碼、補碼是同一個數。
(2)對於負數,轉化為二進制數,前面符號位為1。表示是負數。
計算原碼只要在轉化的二進制數前面加上相應的符號位就行了.
2.反碼的求法:對於負數,將原碼各位取反,符號位不變.
3.補碼的求法:對於負數,將反碼加上二進制的1即可,也就是反碼在最后一位上加上1就是補碼了。
參考資料: