如何将带符号的16位十六进制转换为十进制?

时间:2016-12-30 23:52:39

标签: r hex decimal type-conversion signed

我有一个很长的数据序列存储为无符号16位PCM(它的音频)。使用Frhed,我可以将文件视为十六进制。我想将十六进制转换为十进制。到目前为止,我已导出到csv文件并尝试使用as.integer()在R中进行转换。但是,这似乎没有考虑到值已签名。

1 个答案:

答案 0 :(得分:2)

您可以使用strtoi将十六进制文本字符串转换为十进制数字。您需要指定基数为16。

HexData = c("A167", "AE8F", "6A99", "0966", "784D", "A637", "102D", "4521")
strtoi(HexData, base=16L)
[1] 41319 44687 27289  2406 30797 42551  4141 17697

这是假设未签名的数据。你的问题提到签名和未签名,所以我不太确定你有哪些。