从ASCII十六进制序列签名的16位

时间:2012-07-08 17:04:57

标签: c# hex ascii

  

可能重复:
  How to convert numbers between hexadecimal and decimal in C#?

我正在努力使用c#转换为signed int 让我说我有一个快速的字符串:

AAFE B4FE B8FE

这里我们有3个样本。每个样本(带符号16位)写为4位数的ASCII十六进制序列(2x2位/字节)。

有什么建议吗? 谢谢。

2 个答案:

答案 0 :(得分:1)

您可以使用接受基数的Convert类中的重载来解析任何标准库的数字字符串。在这种情况下,您可能希望this重载。

然后你可以这样做:

var groupings = "AAFE B4FE B8FE".Split();
var converted = groupings
    .Select(grouping => Convert.ToInt16(grouping, 16))
    .ToList();

答案 1 :(得分:1)

如果需要指定已解析值的字节序(而不是假设它们是以little-endian字节顺序排列),那么您需要将每个byte放在结果{中}的适当位置。 {1}}。

请注意,如果字符串值格式不正确,则会在short中抛出异常。

HexToByte