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>0 y<0 且x-y会发生溢出,溢出后的值小于0 这样的话if(x>y)的是true而if(x-y>0)是false 从这个角度这两个式子是不一样的。
②从汇编角度来看,判断大小会被转成相减,那这样两个式子又是一样的,也就推翻了①的结论
不知道具体答案是怎样的,望大神指点。
相关推荐