Description Usage Arguments Details Value Examples
Conversion and manipulation of objects of type "raw"
.
1 2 3 4 5 6 7 8 |
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 |
type |
the result type, partially matched. |
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 locales.
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; only trailing nulls are allowed and will be removed.)
In either case it is possible to create a result which is invalid in a
multibyte locale, e.g. one using UTF-8. Long vectors are
allowed if multiple
is true.
rawShift(x, n)
shift the bits in x
by n
positions
to the right, see the argument n
, above.
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | x <- "A test string"
(y <- charToRaw(x))
is.vector(y) # TRUE
rawToChar(y)
rawToChar(y, multiple = TRUE)
(xx <- c(y, charToRaw("&"), charToRaw("more")))
rawToChar(xx)
rawShift(y, 1)
rawShift(y, -2)
rawToBits(y)
showBits <- function(r) stats::symnum(as.logical(rawToBits(r)))
z <- as.raw(5)
z ; showBits(z)
showBits(rawShift(z, 1)) # shift to right
showBits(rawShift(z, 2))
showBits(z)
showBits(rawShift(z, -1)) # shift to left
showBits(rawShift(z, -2)) # ..
showBits(rawShift(z, -3)) # shifted off entirely
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.