[R] How to split 32 bits data into 16 bit or 8 bit data

Duncan Murdoch murdoch.duncan at gmail.com
Sun Nov 22 17:38:45 CET 2015

On 22/11/2015 2:04 AM, Frank Wang wrote:
> Hi,
> I am new user on R. I want to split a vector of hex data such as "00ff8020"
> "02d00000" "001e0240" "00010096" "00010033"
> into 16 bits such as:
> "00ff", "8020", "02d0","0000","001e", "0240", "0001","0096", "0001", "0033"
> Are there any way to do it?

If those are really strings, use substr().

If they are 32 bit integers, you could use x %% (2^16) for the low 16 
bits.  For the high 16 bits, you'll have to be careful about the sign. 
Or you could use the bitops package, bitShiftR(x, 16).  In either case 
the results will display by default in decimal; if you want a hex 
display, use as.hexmode().

Duncan Murdoch

More information about the R-help mailing list