为什么负数的补码是取反加一

    技术2023-05-03  100

    答案就是为了在方便进行加运算

    以Integer的【-1】为例(Integer占4个字节,占用(4*8=32)位,第一位为符号位):

    【-1】的正常二进制表示【1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1】

    【-1取反】的二进制表示【1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0】注:符号位不参与取反

    【-1取反加一】的二进制【1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1】

    【1】的二进制表示 .【0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1】

    【1】& 【-1取反加一】 结果为 0

    Processed: 0.012, SQL: 9