我在 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只处理无符号整数。
| 归档时间: |
|
| 查看次数: |
5509 次 |
| 最近记录: |