原码反码补码移码


给力讲解:http://www.blogjava.net/zqli/archive/2007/09/21/147164.html

1.原码表示法

  正数的符号位用0表示,负数的符号位用1表示,后面跟着原数值,二进制数的这种表示法称为原码表示法。

  【例 2-2-1】假定字长为8位,写出两个十进制数+15与-15的原码。      

  解:

  [+15]原= 0 0001111

  [-15]原= 1 0001111

  原码表示法简单易懂,但是若遇到两个异号数相加或两个同号数相减,就要做减法运算。为把减法运算转换为加法运算与逻辑运算,便用到了反码与补码。

2.反码表示法

  正数的反码与原码相同;负数的反码,符号位用1表示,后面跟着的数值位按位取反,即1变为0,0变为1,二进制数的这种表示法称为反码表示法。

  【例2-2-2】假定字长为8位,写出两个十进制数+15与-15的反码。

  解:

  [+15]反= [+15]原= 0 0001111

  [-15]反= 1 1110000

3.补码表示法

  正数的补码与原码相同;负数的补码,符号位用1表示,后面跟着的数值位相对原码按位取反后,末位加1,二进制数的这种表示法称为补码表示法。

   因为给定数是负数,则符号位为“1”。
  后七位:-7的原码(10000111)→按位取反(11111000)(负数符号位不变)→加1(11111001)
  所以-7的补码是11111001。

4.  移码表示法

  只要将补码的符号位取反,便可获得相应的移码表示

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