我使用的語言問題是C.約運算符 「+」
我有代碼如下:
int sign_x=~(x>>31)+1;
int sign_y=~(y>>31)+1;
int sign=sign_x^sign_y;
return ((!sign)&(!(!(0x80000000&(y+(~x+1)))))+(sign&(!sign_x)));
當我設置輸入x = 2147483647 [0x7FFFFFFF的],Y = -2147483648 [0x80000000的],結果爲0. 我想知道爲什麼結果是0而不是1,因爲第一部分是0,第二部分是1.當我將運算符「+」更改爲「|」時,結果爲OK。
任何人都可以幫助我嗎?謝謝
**什麼語言**? – Mat
老兄,你被問及關於[上一次]的語言(http://stackoverflow.com/questions/10862523/questions-about-operator)。答案取決於你使用的編程語言,所以你需要告訴它。 – JJJ
對不起,我用C – shirley