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

Jia*_*ian 6 hex r decimal

我在 R 中运行下面的代码,它不返回原始十进制数。

as.hexmode(-8192)
"ffffe000"

strtoi(c("ffffe000"))
NA
Run Code Online (Sandbox Code Playgroud)

小智 4

strtoi函数采用字符串作为输入(请参阅文档)。但是,该as.hexmode函数不返回整数,而是返回输入的十六进制表示形式,它不是字符串(它是一种名为hexmodeAFAIK 的类型)。

正如R 文档所建议的,正确的解决方案是使用as.integer来获取原始输入:

> strtoi(as.hexmode(-8192),16)
[1] NA
> as.integer(as.hexmode(-8192))
[1] -8192
Run Code Online (Sandbox Code Playgroud)

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