将十六进制格式转换为R中的浮点数

时间:2016-09-13 02:22:30

标签: r hex

请问有人帮助我如何将4字节十六进制格式转换为R中的浮点数?例如,我想将"aec7a042"转移到80.39。经过大量搜索后我在R中找不到任何东西给我这个转换! C函数是BitConverter。 ToSingle。但我需要在R中做同样的事情吗? 有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:3)

您可以使用readBin读取此值。看来你有一个4字节的有符号浮点值。您可以阅读:

readBin("aec7a042", "double", size=4)
# [1] 80.39

如果这在您的R版本中无效,请尝试

x <- "aec7a042"
readBin(as.raw(strtoi(substring(x, (step<-seq(1, nchar(x), by=2)), step+1), 16)), "double",n=1,size=4)
# or 
readBin(as.raw(strtoi(apply(matrix(strsplit(x,"")[[1]],2),2,paste, collapse=""), 16)), "double", size=4)

这里我们更明确地将字符串转换为字节的原始向量。