Why does R regard large number as EVEN

integer, numbers, r

Solution

An IEEE double precision value has a 53-bit mantissa. Any number requiring more than 53 binary digits of precision will be rounded, i.e. the digits from 54 onwards will be implicitly set to zero. Thus any number with magnitude greater than 2^53 will necessarily be even (since the least-significant bit of its integer representation is beyond the floating-point precision, and is therefore zero).

Problem

From "http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-the" 7.31 We already know that large number (over 2^53) can make an error in modular operation. However, I cannot understand why all the large number is regarded as even(I have never seen "odd" of large integer which is over 2^53) even though I take some errors in approximation ``` (2^53+1)%%2 (2^100-1)%%2 ``` error message(probable complete loss of accuracy in modulus) can be ignored etc.. are all not 1 but 0 why so? (I know there is some approximation, but I need to know the reason concretely) ``` > print(2^54,22) [1] 18014398509481984.00000 > print(2^54+1,22) [1] 18014398509481984.00000 > print(2^54+2,22) [1] 18014398509481984.00000 > print(2^54+3,22) [1] 18014398509481988.0000 ```

Original source