废话少说,直接上代码。
先写一下字符串转16进制数据:
private static byte[] StrToHex(string str)
{
str = str.TrimStart();
str = str.TrimEnd();
char[] split = {' '};
string[] strSplit = str.Split(split);
byte[] hexByte = new byte[strSplit.Length];
for (int i= 0; i<strSplit.Length; i++)
{
try
{
hexByte[i] = Byte.Parse(strSplit[i], NumberStyles.HexNumber);
}
catch (System.Exception ex)
{
MessageBox.Show("输入的十六进制数据格式不正确!", "错误");
}
}
return hexByte;
}
16进制转字符串,这段代码来自msdn,但有所改进:
static char[] hexDigits = {
'0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
public static string HexToString(byte[] bytes)
{
char[] chars = new char[bytes.Length*3];
for (int i=0; i< bytes.Length; i++)
{
int b = byte[i];
chars[i*3] = hexDigits[b>>4];
chars[i*3+1] = hexDigits[b&0x0F];
chars[i*3+2] = ' ';
}
return new string(chars);
}
如果你有何更好的算法,请告诉我。