[Rd] Reading an "unsigned long long" using R readBin()

Prof Brian Ripley ripley at stats.ox.ac.uk
Fri May 30 20:09:27 CEST 2008


On Fri, 30 May 2008, Duncan Murdoch wrote:

> On 5/30/2008 1:55 PM, Prof Brian Ripley wrote:
>> Well, R has no unsigned quantities, so ultimately you can't actually do 
>> this.  But using what="int" and an appropriate 'size' (likely to be 8)
>> shold read the numbers, wrapping around very large ones to be negative.
>> (The usual trick of storing integers in numeric will lose accuracy, but 
>> might be better than nothing.)
>
> I think reading size 8 integers on 32 bit Windows returns signed 32 bit 
> integers, with values outside that range losing the high order bits, not just 
> accuracy.  At least that's what I see when I write the numbers 1:10 out as 4 
> byte integers, and read them as 8 byte integers:  I get 1 3 5 7 9.

Yes, that's true for even larger ones.

So to clarify: up to 2^31-1 should work, thereafter you will get the lower 
32 bits and hence possibly a signed number.

>
> Duncan Murdoch
>
>> 
>> On Thu, 29 May 2008, Sean Davis wrote:
>> 
>>> Sorry for the simple question, but I am trying to read an "unsigned
>>> long long" using the R readBin() function.  Can someone point me in
>>> the right direction, or am I better off using C for such things?  The
>>> file that I am reading will have been produced on the same machine
>>> that is doing the reading.
>>> 
>>> Thanks,
>>> Sean
>>> 
>>> ______________________________________________
>>> R-devel at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>> 
>> 
>

-- 
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595



More information about the R-devel mailing list