计算机理论:原码、反码、补码与移码公式记忆方法(个人总结)


1、理解原码、反码、补码与移码

  给定一个数,其真值为x,机器字长为n,则针对带符号数:


2、原码、反码、补码与移码取值范围

  针对机器字长为n的带符号数x,原码与反码取值范围一样,以下整数均为纯整数,小数均为纯小数:


  直接看公式可能不容易记住,所以最好是记实例。针对机器字长为8位(即n=8)的带符号纯整数x,其纯整数取值范围是-127 ~ 127,即127= 128-1=27-1=2(8-1) - 1=2(n-1) - 1。纯小数的取值范围是-1 ~ 1,因为原码与反码有2个0(即-0、+0)所以正负小数都可以等于0
  补码的取值范围:

  同样记实例。针对机器字长为8位(即n=8)的带符号纯整数x,其取值范围是-128~127,即-128 = -27 -(28-1) = -(2n-1),127= 128-1=27-1=2(8-1) - 1=2(n-1) - 1。纯小数的取值范围是-1 ~ 1,但补码只有1个0(即+0),所以负小数小于0,可以等于-1。
  移码的取值范围:

  移码公式不分正负数。

3、原码、反码、补码与移码公式

  针对正数(正整数与正小数),原码、反码与补码的表示是一样的。
  针对机器字长为n的负数(负整数与负小数):


  记忆方法:(机器字长n=8)
  1、对于原码负数,符号位取1,即1000 0000。若1000 0000为整数,其值为27=2n-1,若为小数,其值为20,最后加上|x|即可。
  2、对于反码负数,符合位取1,数值位取反,即1111 1111,若1111 1111为整数,其值为255=2n-1,若为小数,其值为21-2-7=2-2-(n-1),最后加上x即可。
  3、对于补码负数,符合位取1,数值位取反,再加1,即1 0000 0000,若1 0000 0000为整数,其值为256=2n,若为小数,其值为2,最后加上x即可。
  4、对于移码,其公式与原码负整数和负小数公式相似,但移码取x,原码取|x|。

你可能感兴趣的:(计算机理论:原码、反码、补码与移码公式记忆方法(个人总结))