二进制补码溢出的判断方法,如

t=a+b的判断方法(a<0==b<0)&&(t<0!=a<0)现在求减法的。... t=a+b 的判断方法 (a<0==b<0)&&(t<0!=a<0)
现在求减法的。
展开
 我来答
江月此清秋3415
2011-06-11 · TA获得超过1710个赞
知道大有可为答主
回答量:3485
采纳率:0%
帮助的人:1776万
展开全部
内存里存储一般是按字节存储的,所以不会有1000001
在内存里有符号的10000001表示10进制的-127
10000001的最高位是符号位,在做补码的时候是不能取反的
所以按取补的逆运算,就可得到原码11111111即10进制的-127

关于溢出
int在16位的编译环境(如TC)下是short int;在32位的编译环境(如vc6.0)下就是长整型,即long int
你的运行环境显然是16位的
有符号整数int的范围是-32768~32767即0x8000~0x7fff
32767即0x7ffff加1后变成了0x8000即-32768

long a=65535在内存中为0x0000ffff
而int b只有16位,在把32赋给16的时候采用截断法,即只把long型数据的后16位赋给int型数据,也就是把0xffff赋给b,而做为有符号数据这正是-1的补码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ycsxm
2011-06-10 · TA获得超过3.3万个赞
知道大有可为答主
回答量:1.4万
采纳率:0%
帮助的人:7969万
展开全部
t=a-b=a+(-b) 用-b代入你的条件中.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式