bytes: Print the byte-wise representation of a value

Description Usage Arguments References Examples

View source: R/bytes.r

Description

Print the byte-wise representation of a value

Usage

1
2
3
bytes(x, split = TRUE)

bits(x, split = TRUE)

Arguments

x

An R vector of type integer, numeric, logical or character.

split

Whether we should split the output string at each byte.

References

http://en.wikipedia.org/wiki/Two's_complement for more information on the representation used for ints.

http://en.wikipedia.org/wiki/IEEE_floating_point for more information the floating-point representation used for doubles.

http://en.wikipedia.org/wiki/Character_encoding for an introduction to character encoding, and ?Encoding for more information on how R handles character encoding.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
## Encoding doesn't change the internal bytes used to represent characters;
## it just changes how they are interpretted!

x <- y <- z <- "\u9b3c"
Encoding(y) <- "bytes"
Encoding(z) <- "latin1"
print(x); print(y); print(z)
bytes(x); bytes(y); bytes(z)
bits(x); bits(y); bits(z)

## In R, integers are signed ints. The first bit indicates the sign, but
## values are stored in a two's complement representation. We see that
## NA_integer_ is really just the smallest negative integer that can be
## stored in 4 bytes
bits(NA_integer_)

## There are multiple kinds of NAs, NaNs for real numbers
## (at least, on 64bit architectures)
print( c(NA_real_, NA_real_ + 1) )
rbind( bytes(NA_real_), bytes(NA_real_ + 1) )
rbind( bytes(NaN), bytes(0/0) )

pryr documentation built on May 2, 2019, 9:58 a.m.

Related to bytes in pryr...