2015-10-05 54 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)一般失敗。