Thanks! Forgot I'm on a 64-bit environment.
Tony Kelman於 2015年1月6日星期二UTC+8下午12時31分05秒寫道: > > Yes, actually. If you're on a 64 bit machine, then the integer literal "0" > is an Int64. So int64(0) - 0x12345678 promotes and does the subtraction in > Int64. -0x12345678 wraps around to the unsigned integer 0xedcba988 which is > greater than typemax(Int32). So the value is too large to represent as a > signed Int32. > > > On Monday, January 5, 2015 5:43:20 PM UTC-8, Chi-wei Wang wrote: >> >> >> >> julia version 0.4.0-dev+2496 >> >> Program: >> println(-0x12345678) >> println(0-0x12345678) >> println(int32(0-0x12345678)) >> println(int32(-0x12345678)) >> >> >> Output: >> 3989547400 >> -305419896 >> -305419896 >> ERROR: InexactError() >> in include at ./boot.jl:248 >> in include_from_node1 at loading.jl:128 >> in process_options at ./client.jl:312 >> in _start at ./client.jl:393 >> while loading /home/jack/julia/jia32/test.jl, in expression starting on >> line 4 >> >> >> Can this be right? >> >
