原码 反码 补码

原码 反码 补码

对计算机中常见数据简单分类

机器数 与 真值

原码

反码

补码

扩展

对计算机常见数据的分类

机器数

就是数值在计算机中的二进制表现形式

机器数在计算机中有符号,使用 最高位表示符号 , 使用0 表示正,使用 1 表示负

一个字节8个bit位表示

+5 = 0000 0101

-10 = 1000 1010

真值

机器数所表示的真正的数值

如 : 1000 1010 = -10

原码

原码就是符号位加上真值的绝对值

反码

正数 : 正数的反码 =  原码  如: +3 = 0000 0011[原码] =  0000 0011 [反码]

负数 : 符号为不变 ,其余各位直接取反 ,  1->0  0->1

补码

计算机中数据以补码的形式,同样以补码的形式参与运算

正数 : 原码 = 反码 = 补码  如 : +3 0000 0011[原码] =  0000 0011[反码] =  0000 0011[补码] 

负数 :  首先求的反码,在反码的基础上 + 1,[加到最低位上]

为什么需要反码和补码

反码

在计算机的时候,只有加法器没有减法器,为了将减法转换为加法,设计反码;

但是反码有缺陷,正负相加 0 的表示不唯一;

补码

为了解决反码正负相加不唯一的情况,使用高位溢出解决;

将补码转换为原码

正数 : 不需要转

负数 : 求补码的补码

将负数的补码当做原码,然后求该原码的补码

计算规则 :符号位不变,其余各位直接取反,然后加1;

你可能感兴趣的:(原码 反码 补码)