加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

带符号数的加减法

(2008-02-28 14:11:24)
标签:

补码

of

号数

加减法

符号位

分类: 知识积累
1、符号数与无符号数的人为规定性:
一个数,是有符号数还是无符号数都是人为规定的。进行二进制运算时用无符号数或是补码运算时,结果都是正确的。
10000100+00001110=无符号数即 132+146=146D
若规定为符号数则为-124+14=-110而[-110]补=10010010
2、补码加减法运算
  计算机中,当确定为符号数运算时,符号数一律用补码表示,运算时符号位和数字位一起参加运算。同样,运算结果也用补码表示。
1)两符号数相加公式:
[X+Y]补=[X]补+[Y]补
2)两符号数相减公式:
[X-Y]补=[X]补+[-Y]补
3)溢出及符号数的扩展
溢出:当两个正数相加或两个负数相加运算结果超过了补码所能表示的数值范围称为溢出。以标志OF(溢出标志位)表示是否溢出。
不溢出(OF=0),说明运算结果正确。
溢出(OF=1),说明运算结果错误。
判断方法:
  • 异号数相加或同号数相减不会溢出(OF=0)。
  • 同号数相加或异号数相减时有可能发生溢出。

OF=AnBnSn+AnBnSn  OF:代表溢出;An、Bn分别代表两个加数符号位,Sn代表结果的符号位。

解决办法:增加符号数的位数,一般采用字节(8位)的倍数,即8位、16位、24位等。正数的补码,其扩展粒数全部加0,原为负数的补码,其扩展的位数全部加1。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有