java中的原碼、反碼、補碼


原碼:是最簡單的機器數表示法。用最高位表示符號位,"1"表示負號,"0"表示正號。其他位存放該數的二進制的絕對值。
 例:1010 :
        
        最高位是1,表示這是一個負數,其他三位是:010
        即:從最最右邊開始計算結果為
             0 = 0 * 2 ^ 0     => 0
                               +
             1 = 1 * 2 ^ 1    => 2
                               +
             0 = 0 * 2 ^ 2    => 0
             
         ^ 表示冪運算
         再結合最高位是1,表示:1010 是個負數,其結果為 -2 原碼最大的問題就在於一個數加上他的相反數不等於零。        

反碼:正數的反碼還是等於原碼。負數的反碼就是他的原碼除符號位外,按位取反。
    例:
        3是正數,原碼與反碼相同,則可以表示為0011
       -3的負數,原碼是1011 反碼的符號位不變是1,后面3位接位取反100 所以-3的反碼就是:1100
       
        
    反碼與原碼比較,最大的優點,就在於解決了減法的問題

補碼:正數的補碼等於他的原碼,負數的補碼等於反碼+1


免責聲明!

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



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