Re: [問題] Java Puzzlers Quiz 3
※ 引述《PttHuge (我要看Naruto >_<)》之銘言:
: public class LongDivision {
: public static void main(String[] args) {
: final long MICROS_PER_DAY = 24 * 60 * 60 * 1000 * 1000;
: final long MILLIS_PER_DAY = 24 * 60 * 60 * 1000;
: System.out.println(MICROS_PER_DAY / MILLIS_PER_DAY);
: }
: }
<D>
延伸問題
自己嘗試做一個簡單的overflow detect
(google一下可以發現JVM 也不會幫你做,所以才要自己做:p)
final int INT_MAX = 0x11111111;
if(INT_MAX & int(MICROS_PER_DAY >> 8) != 0)
System.err.println("Overflow");
if(INT_MAX & int(MILLIS_PER_DAY >> 8) != 0)
System.err.println("Overflow");
結果發現兩個都會overflow,有人可以解釋一下嗎? @_@
不用 final long LONG_MAX 是因為 & 不能用於long
所以改用int 並搭配將MICROS_PER_DAY及MILLIS_PER_DAY right shift 8 bit
--
嘿嘿..我是huge..
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.206.35
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章
14
39