把16进制字符转换成byte数组
2013-03-25 08:18 左眼微笑右眼泪 阅读(2711) 评论(0) 收藏 举报在计算机里,平时常用的编码一般用的是16进制的字符串并不是二进制字符串,二个16进制的数刚好可以表示一个字节,十六进制使用起来更简短,换算的时候一位16进制数可以顶4位2进制数。而在我们写程序的时候,用到的一般是字节数组。它们之间是怎样转换的呢?下面介绍一下它们相互转换的方法。
16进制字符串转换成Byte数组
public static byte[] HexStringToByte(string hexString)
{
char[] charList = hexString.ToCharArray();
byte[] resultList = new byte[charList.Length / 2];
int byteCount = 0;
for (int i = 0; i < charList.Length; i += 2)
{
//一个byte相当于两个16进制的数
byte b = 0x00;
b |= Convert.ToByte("0x0" + charList[i], 16);
b <<= 4;//移位操作,左移4位
b |= Convert.ToByte("0x0" + charList[i + 1],16);
resultList[byteCount] = b;
byteCount++;
}
return resultList;
}
Byte数组转换成16进制字符串
public string ByteToString(byte[] byteList)
{
StringBuilder sbResult = new StringBuilder();
foreach (byte oneByte in byteList)
{
string tempStr=String.Format("{0:X2} ", oneByte);
sbResult.Append(tempStr);
}
return sbResult.ToString() ;
}
浙公网安备 33010602011771号