Chinaunix首页 | 论坛 | 博客
  • 博客访问: 66457
  • 博文数量: 12
  • 博客积分: 320
  • 博客等级: 二等列兵
  • 技术积分: 155
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-18 15:20
文章分类

全部博文(12)

文章存档

2014年(2)

2012年(10)

我的朋友

分类: 嵌入式

2012-05-26 19:03:46

(1)补码加法运算:

   整数:[A]补+[B]补=[A+B]补  (模为2的n+1次方,因为可能会有进位)
   小数:[A]补+[B]补=[A+B]补  (模为2,因为A和B都小于1)

(2)补码减法运算:
   因为A-B = A+(-B),所以减法可以变通为加法进行计算。

   整数:[A-B]补=[A]补+[-B]补  (模为2的n+1次方)
   小数:[A-B]补=[A]补+[-B]补  (模为2)

   在做补码加减法时,只需将符号位和数值部分一起参加运算,并且将符号位的进位自然丢掉就可以了。但是,当运算结果超出机器字长所能表示的数值范围,这种情况叫做溢出。

(3)判断溢出:
   溢出出现的情况:正数+正数,负数+负数,正数-负数,负数-正数 这四种情况,当参加运算的两个数的符号(正负)相同,而结果则与这2个数的符号不同,即为溢出。
   计算机中通常将两个参与运算的数的符号位产生的进位与最高有效位(",""."后的那位)产生的进位进行异或操作(无进位即进位为0),异或结果为1,是溢出,异或结果为0,无溢出。
  

阅读(5272) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~