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

问题描述 投票:4回答:1

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

as.hexmode(-8192)
"ffffe000"

strtoi(c("ffffe000"))
NA
r hex decimal
1个回答
1
投票

strtoi 函数接收一个字符串作为输入(见 文件). 然而, as.hexmode 函数并不返回一个整数,而是返回输入的十六进制表示,它不是一个字符串(它是一个名为 hexmode (AFAIK)。

适当的解决办法,如 R文件,正在使用 as.integer 以获得您的原始输入。

> strtoi(as.hexmode(-8192),16)
[1] NA
> as.integer(as.hexmode(-8192))
[1] -8192

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

© www.soinside.com 2019 - 2024. All rights reserved.