這裡首先要明確的是資料用幾位二進位制表示!如果用4位表示,-8的補碼就是1000,如果用5位表示,那-8的補碼就是11000……用8位表示-8的補碼就是11111000了。現在的計算機,int型多是32位二進位制了,那-8的補碼就是二進位制11111111111111111111111111111000。所以你說-8的補碼不是11000欠準確!對於正數,原碼、反碼、補碼的二進位制形式規定是一樣的,所以無論有多少位,形式都不變化。補碼概念和規則的引入,是解決負數在計算機中的表示和運算問題的。通俗地講就是引入補碼概念和規則後,計算機中就連同符號位只簡單地作無符號加法運算,而依據某些規則來判斷結果的正確性,就用不著再關心誰是正數誰是負數、是在做加法還是在做減法了,這也簡化了計算機硬體的設計……而規定正數的原碼、反碼、補碼一樣,則是為理論上的完善,這樣我們就認為計算機中的整數全是補碼了……這完全是個人理解,僅供參考。
這裡首先要明確的是資料用幾位二進位制表示!如果用4位表示,-8的補碼就是1000,如果用5位表示,那-8的補碼就是11000……用8位表示-8的補碼就是11111000了。現在的計算機,int型多是32位二進位制了,那-8的補碼就是二進位制11111111111111111111111111111000。所以你說-8的補碼不是11000欠準確!對於正數,原碼、反碼、補碼的二進位制形式規定是一樣的,所以無論有多少位,形式都不變化。補碼概念和規則的引入,是解決負數在計算機中的表示和運算問題的。通俗地講就是引入補碼概念和規則後,計算機中就連同符號位只簡單地作無符號加法運算,而依據某些規則來判斷結果的正確性,就用不著再關心誰是正數誰是負數、是在做加法還是在做減法了,這也簡化了計算機硬體的設計……而規定正數的原碼、反碼、補碼一樣,則是為理論上的完善,這樣我們就認為計算機中的整數全是補碼了……這完全是個人理解,僅供參考。