原码反码补码

157 阅读1分钟

原码反码补码

  • 原码:十进制数据的二进制表现形式,最左边是符号位。0为正,1为负

    • 利用原码对正数进行计算是不会有问题的
    • 但是如果是负数计算,结果就出错,实际运算的结果跟我们预期的结果是相反的
  • 反码:正数的补码是其本身,负数的反码是符号位保持不变,其余位取反

    • 反码是为了解决原码不能计算负数的问题而出现的

    • 计算规则:正数的反码不变,负数的反码在原码的基础上,符号位不变,数值位 取反,0变1,1变0

    • 在进行跨零计算的时候,有1的误差

Snipaste_2022-12-27_22-29-53.png

  • 补码:正数的补码是其本身,负数的补码是在其反码的基础上+1
    • 补码出现的目的:为了解决负数计算时跨0的问题而出现的
    • 计算规则:正数的补码不变,负数的补码在反码的基础上+1,另外补码还能多记录一个特殊的值-128,该数据在1个字节下没有原码和反码
    • 计算机中的存储计算都是以补码的形式进行的

Snipaste_2022-12-27_22-31-05.png

  • 其他运算符
运算符含义运算规则
&逻辑与0为false 1为true
|逻辑或0为false 1为true
<<左移向左移动,低位补0
>>右移向右移动,高位补0或1
>>>无符号右移向右移动,高位补0