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

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务