/// <summary> /// 将输入为十六进制的字符串转换为数字 /// </summary> /// <param name="data"></param> /// <returns></returns> #region public byte[] StringToByte(string data) { List<byte> bdata = new List<byte>(); char[] bufdata = data.ToCharArray(); if (data.Length % 2 == 0) { byte buf1 = 0; for (int i = 0; i < data.Length - 1; ) { buf1 = OneStringtoByte(bufdata[i]); buf1 <<= 4; buf1 |= OneStringtoByte(bufdata[i + 1]); bdata.Add(buf1); i += 2; } } else { byte buf1 = 0; for (int i = 0; i < data.Length - 2; ) { buf1 = OneStringtoByte(bufdata[i]); buf1 <<= 4; buf1 |= OneStringtoByte(bufdata[i + 1]); bdata.Add(buf1); i += 2; } bdata.Add(OneStringtoByte(bufdata[bufdata.Length - 1])); } return bdata.ToArray(); } public byte OneStringtoByte(char i) { switch (i) { case '0': return 0; case '1': return 1; case '2': return 2; case '3': return 3; case '4': return 4; case '5': return 5; case '6': return 6; case '7': return 7; case '8': return 8; case '9': return 9; case 'a': return 0x0a; case 'b': return 0x0b; case 'c': return 0x0c; case 'd': return 0x0d; case 'e': return 0x0e; case 'f': return 0x0f; case 'A': return 0x0a; case 'B': return 0x0b; case 'C': return 0x0c; case 'D': return 0x0d; case 'E': return 0x0e; case 'F': return 0x0f; default: return 0; } } #endregion