Description Usage Arguments Details Value Author(s) References See Also Examples
Show numbers in binary, hex and decimal format. The resulting
characterlike objects can be backtransformed to "mpfr"
numbers via mpfr()
.
1 2 3 4 5 6 7 8 9  formatHex(x, precBits = min(getPrec(x)), style = "+", expAlign = TRUE)
formatBin(x, precBits = min(getPrec(x)), scientific = TRUE,
left.pad = "_", right.pad = left.pad, style = "+", expAlign = TRUE)
formatDec(x, precBits = min(getPrec(x)), digits = decdigits,
nsmall = NULL, scientific = FALSE, style = "+",
decimalPointAlign = TRUE, ...)

x 
a 
precBits 
integer, the number of bits of precision, typically
derived from 
style 
a single character, to be used in 
expAlign 

scientific 

... 
additional optional arguments.

left.pad, right.pad 
characters (onecharacter strings) that
will be used for left and rightpadding of the formatted string
when 
nsmall 
only used when 
digits 
integer; the number of decimal digits displayed is the
larger of this argument and the internally generated value that is a
function of 
decimalPointAlign 
logical indicating if padding should be used
to ensure that the resulting strings align on the decimal point
( 
For the hexadecimal representation, when the precision is not larger
than double precision, sprintf()
is used directly,
otherwise formatMpfr()
is used and post processed.
For the binary representation, the hexadecimal value is calculated and
then edited by
substitution of the binary representation of the hex characters coded
in the HextoBin
vector. For binary with scientific=FALSE
, the
result of the scientific=TRUE
version is edited to align binary
points. For the decimal representation, the hexadecimal value is
calculated with the specified precision and then sent to the
format
function for scientific=FALSE
or to the sprintf
function for scientific=TRUE
.
a character vector (or matrix) like x
, say r
, containing
the formatted represention of x
, with a class
(unless left.pad
or right.pad
were not "_"
). In
that case, formatHex()
and formatBin()
return class
"Ncharacter"
; for that,
mpfr(.)
has a method and will basically return x
,
i.e., work as inverse function.
Since Rmpfr version 0.62
, the S3 class
"Ncharacter"
extends "character"
.
(class(.)
is now of length two and class(.)[2]
is
"character"
.). There are simple [
and print
methods; modifying or setting dim
works as well.
Richard M. Heiberger [email protected], with minor tweaking by Martin M.
R FAQ 7.31: Why doesn't R think these numbers are equal?
system.file("../../doc/FAQ")
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49  FourBits < mpfr(matrix(0:31, 8, 4, dimnames = list(0:7, c(0,8,16,24))),
precBits=4) ## 4 significant bits
FourBits
formatHex(FourBits)
formatBin(FourBits, style = " ")
formatBin(FourBits, scientific=FALSE)
formatDec(FourBits)
## as "Ncharacter" 'inherits from' "character", this now works too :
data.frame(Dec = c( formatDec(FourBits) ), formatHex(FourBits),
Bin = formatBin(FourBits, style = " "))
FBB < formatBin(FourBits) ; clB < class(FBB)
(nFBB < mpfr(FBB))
stopifnot(class(FBB)[1] == "Ncharacter",
all.equal(nFBB, FourBits, tol=0))
FBH < formatHex(FourBits) ; clH < class(FBH)
(nFBH < mpfr(FBH))
stopifnot(class(FBH)[1] == "Ncharacter",
all.equal(nFBH, FourBits, tol=0))
## Compare the different "formattings" (details will change, i.e. improve!)%% FIXME
M < mpfr(c(Inf, 1.25, 1/(Inf), NA, 0, .5, 1:2, Inf), 3)
data.frame(fH = formatHex(M), f16 = format(M, base=16),
fB = formatBin(M), f2 = format(M, base= 2),
fD = formatDec(M), f10 = format(M), # base = 10 is default
fSci= format(M, scientific=TRUE),
fFix= format(M, scientific=FALSE))
## Other methods ("[", t()) also work :
stopifnot(dim(F1 < FBB[, 1, drop=FALSE]) == c(8,1), identical(class( F1), clB),
dim(t(F1)) == c(1,8), identical(class(t(F1)),clB),
is.null(dim(F.2 < FBB[,2])), identical(class( F.2), clB),
dim(F22 < FBH[1:2, 3:4]) == c(2,2), identical(class(F22), clH),
identical(class(FBH[2,3]), clH), is.null(dim(FBH[2,3])),
identical(FBH[2,3:4], F22[2,]),
identical(FBH[2,3], unname(FBH[,3][2])),
TRUE)
TenFrac < matrix((1:10)/10, dimnames=list(1:10, expression(1/x)))
TenFrac9 < mpfr(TenFrac, precBits=9) ## 9 significant bits
TenFrac9
formatHex(TenFrac9)
formatBin(TenFrac9)
formatBin(TenFrac9, scientific=FALSE)
formatDec(TenFrac9)
formatDec(TenFrac9, precBits=10)

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.