關於 java Integer 的 minimum 跟 maximum 的表示方式


要顯示 java  Integer type 的 minimum and maximum 的方式

Integer.MAX_VALUE (2147483647)  及 Integer.MIN_VALUE (-2147483648)

若不用內建涵式, 直覺會用:

 1<<31  
 -1<<31  

可結果卻都是 -2147483648

這是由於
 1<<31  
 已發生 overflowed, 在java中下一個位數則是  
 -1<<31  
要得到正確的 MAX_VALUE 可用
 (1<<31)-1  
其實這是我在作 leetcode (Reverse Integer) 的考題遇到的問題.

該題目回傳值跟輸入值是 int, 但側資的輸出有可能是 overflowed 的情形!

真是太狡猾了。


http://goo.gl/7el8Kf



Comments

Popular posts from this blog

股票評價(Stock Valuation) - 股利折現模型

openwrt feed的使用

R 語言:邏輯回歸 Logistic Regression using R language (二)