hexmode {base} R Documentation

## Integer Numbers Displayed in Hexadecimal

### Description

Integers which are displayed in hexadecimal (short ‘hex’) format, with as many digits as are needed to display the largest, using leading zeroes as necessary.

Arithmetic works as for integers, and non-integer valued mathematical functions typically work by truncating the result to integer.

### Usage

as.hexmode(x)

## S3 method for class 'hexmode'
as.character(x, ...)

## S3 method for class 'hexmode'
format(x, width = NULL, upper.case = FALSE, ...)

## S3 method for class 'hexmode'
print(x, ...)


### Arguments

 x An object, for the methods inheriting from class "hexmode". width NULL or a positive integer specifying the minimum field width to be used, with padding by leading zeroes. upper.case a logical indicating whether to use upper-case letters or lower-case letters (default). ... further arguments passed to or from other methods.

### Details

Class "hexmode" consists of integer vectors with that class attribute, used primarily to ensure that they are printed in hex. Subsetting ([) works too, as do arithmetic or other mathematical operations, albeit truncated to integer.

as.character(x) converts each entry individually, hence with no leading zeroes, whereas in format(), when width = NULL (the default), the output is padded with leading zeroes to the smallest width needed for all the non-missing elements.

as.hexmode can convert integers (of type "integer" or "double") and character vectors whose elements contain only 0-9, a-f, A-F (or are NA) to class "hexmode".

There is a ! method and methods for | and &: these recycle their arguments to the length of the longer and then apply the operators bitwise to each element.

octmode, sprintf for other options in converting integers to hex, strtoi to convert hex strings to integers.

### Examples

i <- as.hexmode("7fffffff")
i; class(i)
identical(as.integer(i), .Machine\$integer.max)

hm <- as.hexmode(c(NA, 1)); hm
as.integer(hm)

Xm <- as.hexmode(1:16)
Xm # print()s via format()
stopifnot(nchar(format(Xm)) == 2)