rawConversion              package:base              R Documentation

Convert to or from Raw Vectors

Description:

     Conversion and manipulation of  objects of type '"raw"'.

Usage:

     charToRaw(x)
     rawToChar(x, multiple = FALSE)

     rawShift(x, n)

     rawToBits(x)
     intToBits(x)
     packBits(x, type = c("raw", "integer"))

Arguments:

       x: object to be converted or shifted.

multiple: logical: should the conversion be to a single character
          string or multiple individual characters?

       n: the number of bits to shift.  Positive numbers shift right
          and negative numbers shift left: allowed values are '-8 ...
          8'.

    type: the result type.

Details:

     'packBits' accepts raw, integer or logical inputs, the last two
     without any NAs.

     Note that 'bytes' are not necessarily the same as characters, e.g.
     in UTF-8 domains.

Value:

     'charToRaw' converts a length-one character string to raw bytes.
     It does so without taking into account any declared encoding (see
     'Encoding').

     'rawToChar' converts raw bytes either to a single character string
     or a character vector of single bytes (with '""' for '0').  (Note
     that a single character string could contain embedded nuls, in
     which case it will be truncated at the first nul with a warning.) 
     In either case it is possible to create a result which is invalid
     in a multibyte locale, e.g. one using UTF-8.

     'rawToBits' returns a raw vector of 8 times the length of a raw
     vector with entries 0 or 1.  'intToBits' returns a raw vector of
     32 times the length of an integer vector with entries 0 or 1. 
     (Non-integral numeric values are truncated to integers.) In both
     cases the unpacking is least-significant bit first.

     'packBits' packs its input (using only the lowest bit for raw or
     integer vectors) least-significant bit first to a raw or integer
     vector.

Examples:

     x <- "A test string"
     (y <- charToRaw(x))
     is.vector(y) # TRUE

     rawToChar(y)
     rawToChar(y, multiple = TRUE)
     (xx <- c(y, as.raw(0), charToRaw("more")))
     rawToChar(xx)
     xxx <- xx
     xxx[length(y)+1] <- charToRaw("&")
     xxx
     rawToChar(xxx)

     rawShift(y, 1)
     rawShift(y, -2)

     rawToBits(y)

