BitConverter.ToString 的相反方法?

Posted

技术标签:

【中文标题】BitConverter.ToString 的相反方法?【英文标题】:Opposite Method to BitConverter.ToString? 【发布时间】:2011-02-01 15:24:14 【问题描述】:

BitConverter.ToString 给出格式为“XX-XX-XX-XX”的十六进制

是否有相反的方法,以便我可以从以这种格式给出的字符串中获取原始字节数组?

【问题讨论】:

【参考方案1】:

不,但它很容易实现:

string s = "66-6F-6F-62-61-72";
byte[] bytes = s.Split('-')
    .Select(x => byte.Parse(x, NumberStyles.HexNumber))
    .ToArray();

【讨论】:

【参考方案2】:

使用string.Split,然后循环使用byte.Parse是最简单的方法。如果您知道每个字节都被填充到两个十六进制数字,那么您可以通过跳过 string.Split 并一次跨过三个字符,在两个十六进制数字之间始终恰好有一个破折号,从而提高性能。

【讨论】:

以上是关于BitConverter.ToString 的相反方法?的主要内容,如果未能解决你的问题,请参考以下文章

用什么方法将BitConverter.ToString产生字符串再转换回去

unity中如何把byte转成二进制

MD5加密方法

md5加密密码

十六进制到字符串转换,通过消除SPACE在STX和ETX之间提取值

MD5加密的引用