[R] integer ranges in R vs C and Java

0 views
Skip to first unread message

Saptarshi Guha

unread,
May 2, 2009, 5:20:45 PM5/2/09
to R-h...@r-project.org
Hello,
I'm using R-2.9 and have a question about integer ranges. On C, (OS X
platform),
LONG_MIN and LONG_MAX(from limits.h) correspond to -2147483648(-2^31)
and 2147483647 (2^31-1)
In Java(1.4), Integer.MIN_VALUE and Integer.MAX_VALUE have the same values.

On R, as.integer(2^31-1) is the maximum (without returning NA) but the
lowest is -2147483647 (-2^31+1)

> as.integer((-2)^31)
[1] NA

So in both Java and C can hold 2^32 different values, but R holds 2^32
-1 different values.

Have I made a mistake? Is there a reason for the difference?

Thank you
Saptarshi

______________________________________________
R-h...@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Martin Morgan

unread,
May 2, 2009, 5:39:28 PM5/2/09
to saptars...@gmail.com, R-h...@r-project.org
You've hit on the reason -- representation of NA

src/main/arithmetic.c:157: R_NaInt = INT_MIN;

(R-devel seems more appropriate for this question).

Martin


Saptarshi Guha <saptars...@gmail.com> writes:

--
Martin Morgan
Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M1 B861
Phone: (206) 667-2793

Saptarshi Guha

unread,
May 2, 2009, 5:48:43 PM5/2/09
to Martin Morgan, R-h...@r-project.org
> You've hit on the reason -- representation of NA
>
> src/main/arithmetic.c:157:    R_NaInt = INT_MIN;

Aha! Yes, I missed that.

>
> (R-devel seems more appropriate for this question).

Yes, i was not sure.

Reply all
Reply to author
Forward
0 new messages