1、原码、反码和补码系列知识

时间:2024-03-02 07:41:05

 机器数和真值

机器数

一个数在计算机中的二进制表示形式,  叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1。

例,十进制中的数 +3 ,计算机字长为8位,机器数是00000011;如果是 -3 ,机器数是 10000011 ;

真值

因为机器数的第一个位置存放的是符号位,所以不能参与进制的转换。因此把带符号位的机器数对应的真正数值称为机器数的真值。

例,机器数10000011,其4最高位1代表负,则真正数值是-3而不是形式值131(10000011转换成十进制等于131)。

原码、反码和补码

原码

用最高位表示符号位,其他位置存放该数二进制的绝对值;也就是最简单的机器鼠表示法。

例,带符号位的四位二进值数

  1. 1010 : 最高位为‘1’,表示这是一个负数,其他三位为‘010’,

  2. 即(0*2^2)+(1*2^1)+(0*2^0)=2(‘^’表示幂运算符)

  3. 所以1010表示十进制数(-2)。

下图给出部份正负数数的二进制原码表示法:

 

反码

正数的反码等于原码,附属的反码就是他的原码除符号位外,按位取反。

例,带符号位的四位二进制数

  1. 3是正数,反码与原码相同,则可以表示为0011

  2. -3的原码是1011,符号位保持不变,低三位(011)按位取反得(100)

  3. 所以-3的反码为1100

下图给出部分正负数的二进制数反码表示法:

 

补码

正数的补码等于它的原码,负数的补码等于反码+1

特点

  1. 数值为零的补码表示唯一。
  2. 正数补码马志随着针织增大而增大,负数补码码值随着真值增大而增大。

补码加减法运算规则

  1. 参加运算的操作数用补码表示。
  2. 符号位等同于数值位一起参加运算
  3. 对于两数相加间的各种情况,计算机都执行加法操作。当操作码为加法运算时就直接进行相加,当操作码为减时,将简述联通符号位一起求反末尾加1再与被减数相加。
  4. 结果用补码表示。
  5. 同号相加和异号相减的情况会溢出。

例: