如何将字节数组转换为十六进制字符串,反之亦然?

如何将字节数组转换为十六进制字符串,反之亦然

您可以从.NET 5开始使用Convert.ToHexString
还有一种反向操作的方法:Convert.FromHexString


对于较旧版本的.NET,您可以使用:

公共静态字符串ByteArrayToString(字节[]ba)
{
StringBuilder十六进制=新StringBuilder(ba.Length*2);
foreach(ba中的字节b)
十六进制格式(“{0:x2}”,b);
返回hex.ToString();
}

或:

公共静态字符串ByteArrayToString(字节[]ba)
{
返回BitConverter.ToString(ba).替换(“-”,“);
}

例如,这里有更多的变体

反向转换如下所示:

公共静态字节[]StringToByteArray(字符串十六进制)
{
int numbercars=十六进制长度;
字节[]字节=新字节[numbercars/2];
对于(int i=0;i<numbercars;i+=2)
字节[i/2]=转换为字节(十六进制子字符串(i,2),16);
返回字节;
}

使用子字符串是与Convert.ToByte结合使用的最佳选择。有关更多信息,请参阅此答案。如果需要更好的性能,必须避免使用Convert.ToByte,然后才能删除子字符串

发表评论