原码,反码,补码

package property;

public class CodeTestO {

    public static void main(String[] args) {
        

    }

    
    /**
   * 二进制数相加  1+0 = 1    0+1 = 1  0+0 = 0   1+1 = 10  1+1+1 = 11

* 机器数: * 计算机以二机制0,1储存数值,8位二进制数是机器数。 * * 真值: * 带符号的机器数表示的真正数值是真值。 * * * 正数的原码,反码,补码相同 * * * 原码,反码,补码 * * 原码:最高位是符号位 1 :负 0:正 * * 符号位加真值的绝对值 * * 反码: * * 符号不变,其它为取反 * * 补码: * * 符号位不变,其他为取反,然后加1 * * * 原码: * 1 + (-1) = 0000 0001(原) + 1000 0001(原) = 1000 0010 (原) = -2 * * 反码作用: * 解决减法运算的问题 * 1 + (-1) = 0000 0001(原) + 1000 0001(原) = 0000 0001(反) + 1111 1110(反) = 1111 1111(反) = 1000 0000(原) = -0 * * * 补码作用: * 补码:解决+0(0000 0000)和-0(1000 0000)的问题,而且可以多表示一位数值-128 * * * 原码与反码的范围是 -127 --- +127 * * 补码的范围是 -128 --- +127 * * -128 没有原码与反码 [1000 0000](补) -----> -128 * * 计算机没有减法,只有+(-) * * -128 = -1 + (-127) = 1000 0001(原)+1111 1111 (原) = 1111 1110(反)+ 1000 0000(反) = 1111 1111(补)+ 1000 0001(补) = 1000 0000(补) * *
*/ }

https://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html

https://jingyan.baidu.com/article/86112f135745432736978776.html

posted @ 2018-01-05 19:22  aLa神灯  阅读(126)  评论(0编辑  收藏  举报