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