如何在十进制和十六进制之间进行转换?

7
我正在R中运行以下代码,但它没有返回原始的十进制数。
as.hexmode(-8192)
"ffffe000"

strtoi(c("ffffe000"))
NA
1个回答

4
strtoi函数接受一个字符串作为输入(参见文档)。然而,as.hexmode函数不返回整数,而是输入的十六进制表示,这不是一个字符串(它是一个名为hexmode的类型)。根据R文档的建议,正确的解决方案是使用as.integer来获取原始输入。
> strtoi(as.hexmode(-8192),16)
[1] NA
> as.integer(as.hexmode(-8192))
[1] -8192

我仍然不清楚问题是否出在使用了负数输入上。我只能假设strtoi仅处理无符号整数。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接