例:string str="FE FE FE 68 AA AA AA AA AA AA 68 13 00 DF 16";
转换成byte[] bytes={0xFE,0xFE,0xFE,0x68,0xAA,.......,0x16};
public static byte[] StringToByteArray(string hex) { hex = hex.Replace(" ", ""); return Enumerable.Range(0, hex.Length) .Where(x => x % 2 == 0) .Select(x => Convert.ToByte(hex.Substring(x, 2), 16)) .ToArray(); }
这样得到的是:
如果要输入"oxFE"格式这样写:
String.Format("0x{0:X}", bytes[0])
你这里是什么规则呢,直接以空格分组然后添加ox么?
可以写个函数把str中的空格全部去掉,把16进制的字符串再转换成字节数组。这个我之前写过,不明白的话可以联系我
string str = "FE FE FE 68 AA AA AA AA AA AA 68 13 00 DF 16";
(省略去空格算法)去空格得到 string str1= "FEFEFE68AAAAAAAAAAAA681300DF16";
private static byte[] HexToByte(string hexString)//字串符转换成16进制byte[]
{
byte[] returnBytes = new byte[hexString.Length / 2];
for (int i = 0; i < returnBytes.Length; i++)
returnBytes[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);
return returnBytes;
}//返回的结果就是16进制的byte[]
请问 如果 str = "1",我要转换为byte[] 为0x01,str ="10"我是要转换为0x0A,而不是0x10,该如何写这个转换函数?
@hayvane: 那就可以直接convert.tobyte(str,16);