要将BitConverter.ToString
产生的字符串再转换回为二进制数据,可以使用以下两种方法:
1. 使用BitConverter.GetBytes
和Convert.FromHexString
可以使用BitConverter.GetBytes
将一个十六进制字符串转换为等效的字节数组,然后使用Convert.FromHexString
将该数组转换为二进制数据。示例如下:
// 要转换的二进制数据
byte[] originalData = new byte[] { 0x11, 0x22, 0x33, 0x44 };
// 将二进制数据转换为十六进制字符串
string hexString = BitConverter.ToString(originalData);
// 将十六进制字符串转换为字节数组
byte[] byteData = BitConverter.GetBytes(hexString);
// 将字节数组转换为二进制数据
byte[] resultData = Convert.FromHexString(Encoding.UTF8.GetString(byteData));
以上代码中,通过BitConverter.ToString
将二进制数据转换为十六进制字符串,然后通过BitConverter.GetBytes
将字符串转换为等效的字节数组,最后再使用Convert.FromHexString
将字节数组转换为二进制数据。
2. 使用String.Split
和byte.Parse
也可以将十六进制字符串使用String.Split
方法分割为一个个字节的字符串,然后使用byte.Parse
方法将每个字节字符串转换为对应的字节值,最终将各个字节组成字节数组。示例如下:
// 要转换的二进制数据
byte[] originalData = new byte[] { 0x11, 0x22, 0x33, 0x44 };
// 将二进制数据转换为十六进制字符串
string hexString = BitConverter.ToString(originalData);
// 分割十六进制字符串为字节字符串数组
string[] byteStrings = hexString.Split('-');
// 将各个字节字符串转换为字节值
byte[] resultData = new byte[byteStrings.Length];
for (int i = 0; i < byteStrings.Length; i++)
{
resultData[i] = byte.Parse(byteStrings[i], NumberStyles.HexNumber);
}
以上代码中,同样通过BitConverter.ToString
将二进制数据转换为十六进制字符串,然后使用String.Split
方法将字符串分割为一个个字节字符串,然后通过循环依次将各个字节字符串转换为相应的字节值,并添加到最终的字节数组中。
需要注意的是,以上示例代码中使用了BitConverter.ToString
方法的默认分隔符-
,如果你在使用BitConverter.ToString
方法时指定了不同的分隔符,则在使用以上代码时需要根据实际情况修改分割字符。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 用什么方法将BitConverter.ToString产生字符串再转换回去 - Python技术站