2015-10-05 84 views
-1

的表达式如下需要了解评估给定表达式的解释

(ux-uy) == -(unsigned) (y-x) 

其中xy是随机整数和uxuy声明和定义如下

unsigned ux = (unsigned) x; 
unsigned uy = (unsigned) y; 

我测试的用c表达各种数字,这是正确的 ,但我不能证明它为什么是正确的。请解释。

+0

是否签名是否是ux - uy == - (uy - ux)?你认为它是一个数学问题,你会看到发生了什么。 –

+0

做一个个案分析,即当x大于y乘n时,y大于x乘n,相等。 – perreal

+0

我对RHS面前的 - 标志感到困惑。它究竟做了什么? – user1335175

回答

2

y-x - >未定义的行为应该是int减法溢出。

所以平等(ux-uy) == -(unsigned) (y-x)一般失败。