有关sring to byte[] 问题 解决就结贴
如   string   str   =    "aabbccddeeff "; 
 怎么转换成byte[6]的形式?
------解决方案--------------------byte[] byteArray = System.Text.Encoding.Default.GetBytes(  str  );
------解决方案--------------------byte[6] ?
------解决方案--------------------转换规则呢?
------解决方案-------------------- "aabbccddeeff " 转为 byte[] 长度是12...你要byte[6]就必须知道如何截断字符...
------解决方案--------------------请说具体一点,是要任何的字符串转byte数组,还是只有英文字母? 
 如果只要英文字母,可以a-z,按0-25编码,4位二进制可以存的下~
------解决方案--------------------byte[] ok=System.Text.Encoding.GetEncoding( "GB2312 ").GetBytes(str);
------解决方案--------------------两个字符截断,这些字符是 0xaa,0xbb,0xcc,0xdd,0xee,0xff得来的,现在是怎么转换回去byte[6] 
 ---------------- 
 循环咯...   
 其实如果转换成字符串时巧妙一点(比如加上,或空格等分隔符)也不会成现在这样...
------解决方案--------------------string str =  "aabbccddeeff "; 
 int len = str.Length / 2; 
 byte[] arr = new byte[len]; 
 for (int i = 0; i  < len; i++) 
 { 
     arr[i] = (byte)Convert.ToByte(str.Substring(i * 2, 2), 16); 
 }
------解决方案--------------------sorry,本身就byte,没必要再转换 
 string str =  "aabbccddeeff "; 
 int len = str.Length / 2; 
 byte[] arr = new byte[len]; 
 for (int i = 0; i  < len; i++) 
 { 
     arr[i] = Convert.ToByte(str.Substring(i * 2, 2), 16); 
 }
------解决方案--------------------len等于6,为了适应不同长度的情况,没有写斯,用了个变量
------解决方案--------------------System.Text.Encoding.Default.GetBytes( str );
------解决方案--------------------如果是任何字符串怎么转换(不包括汉字)? 
 ------------ 
 非合法的十六进制字符不能按上述办法转换
------解决方案--------------------任何字符就不可能,两个字符放入一个字节了 
 一个字符一个字节,ASCII码
------解决方案--------------------如果包括汉字,就更大了,一个字符要占两个字节 
 Unicode编码
------解决方案--------------------System.Text.Encoding.ASCII.GetBytes( str ); 
 System.Text.Encoding.Unicode.GetBytes( str );
------解决方案--------------------至少也是要 byte [12] 啊
------解决方案--------------------UnicodeEncoding encoder = new UnicodeEncoding(); 
 string str =  "aabbccddeeff "; 
 byte[] b = encoder.GetByte(); // 转化 
 Queue <byte[]>  bQueue = new Queue <byte[]> (); 
 // 将转化结果分割列队 
 for (int i=5;i <b.Length;i+=6) 
 { 
 byte[] k = new byte[] {b[i-5], b[i-4], b[i-3], b[i-2], b[i-1], b[i]}; 
 bQueue.Enqueue(k); 
 } 
 // 剩余部分补足空行 
 int j = b.Length mod 6 
 if (j> 0) 
 { 
 byte[] k = new byte[6]; 
 for (int i=0;i <6;i++) 
 { 
 if (i <j) 
 { 
 k[i] = b[b.Length-j+i]; 
 } 
 else 
 { 
 k[i]=0; 
 } 
 } 
 bQueue.Enqueue(k); 
 }
------解决方案--------------------这个是有规律的嘛~   
 方法有很多,具体的偶手生。呵~