if(x>y)和if(x-y>0)有没有区别?

x y 都是int  
某天在某群中看到此题目,没有答案,想了好久也没有确切答案,求解答。

经过思考之后有以下两个思路:

①x>0 y<0 且x-y会发生溢出,溢出后的值小于0 这样的话if(x>y)的是true而if(x-y>0)是false 从这个角度这两个式子是不一样的。

②从汇编角度来看,判断大小会被转成相减,那这样两个式子又是一样的,也就推翻了①的结论


不知道具体答案是怎样的,望大神指点。

全部评论
汇编里x>y 应该是直接cmp x,y 指令,x-y>0应该是先算x-y=z, 再cmp z,0,写的不规范,大概是这个意思
点赞 回复 分享
发布于 2017-04-23 14:37

相关推荐

不愿透露姓名的神秘牛友
07-09 11:30
找工作7个月,投了7000封,3段世界五百强实习,才有一个offer,牛油们肯定比我强吧
码农索隆:不对不对不对,实习经历这么厉害,简历也没少投,问题出在哪呢
点赞 评论 收藏
分享
白火同学:能。我当初应届沟通了1200,收简历50,面试10左右吧,加油投吧
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务