if(-2147483648 > 0) ----> true
if( int (-2147483648) >0 ) ----> false
上面兩句話為什麼是不同的結果??
http://www.hankcs.com/program/cpp/error-c4146-%E4%B8%80%E5%85%83%E8%B4%9F%E8%BF%90%E7%AE%97%E7%AC%A6%E5%BA%94%E7%94%A8%E4%BA%8E%E6%97%A0%E7%AC%A6%E5%8F%B7%E7%B1%BB%E5%9E%8B%EF%BC%8C%E7%BB%93%E6%9E%9C%E4%BB%8D%E4%B8%BA%E6%97%A0.html
編譯器(VS2013)在看到int n = -2147483648;的時候,首先判斷2147483648 > INT_MAX,知道int裝不下,於是決定使用 unsigned int。然後發現前面還有個負號,於是對2147483648取反