谁能帮忙解释下这段代码string temp = string_to_send.Substring(0, length/2);
byte[] byte_to_send = System.Text.Encoding.Default.GetBytes(temp);
for (int i = 0; i < string_to_send.Length; i += 2)
byte_to_send[i / 2] = Byte.Parse(string_to_send.Substring(i, 2),
System.Globalization.NumberStyles.HexNumber);
看不懂~~
byte[] byte_to_send = System.Text.Encoding.Default.GetBytes(temp);
for (int i = 0; i < string_to_send.Length; i += 2)
byte_to_send[i / 2] = Byte.Parse(string_to_send.Substring(i, 2),
System.Globalization.NumberStyles.HexNumber);
看不懂~~
第二句话,是通过获取的temp字符串生成一个数据.
第三句话,是遍历string_to_send这个字符串,取得偶数位的字符,然后转换为数字,放到字节数组中.
//获得字符串字串,开始位置是a,长度是b
System.Text.Encoding.Default.GetBytes(str)
//将字符串中所有字符编码成一个字节序列,返回的是一个Byte数组
Byte.Parse(string_to_send.Substring(i, 2),
System.Globalization.NumberStyles.HexNumber)
//将十六进制的数字字符串转换为Byte
byte[] byte_to_send = System.Text.Encoding.Default.GetBytes(temp);
//将temp编码成一个字节序列,存储在byte_to_send中
后面的for循环和前面的temp无关,将字符串string_to_send每2位为一组(十六进制)转化为byte类型,并存在了数组里(覆盖了原来由temp产生的字节序列)
eg: string string_to_send = "1234abcd";
Int32 length = string_to_send.Length;
byte[] byte_to_send = new byte[length / 2];
for (int i = 0; i < string_to_send.Length; i += 2)
byte_to_send[i / 2] = Byte.Parse(string_to_send.Substring(i, 2),System.Globalization.NumberStyles.HexNumber); Console.WriteLine(BitConverter.ToString(byte_to_send));