轉自http://luohonghong.blog.163.com/blog/static/78312058201242632055642/
如下:
1、數字和字節之間互轉 int num=12345; byte[] bytes=BitConverter.GetBytes(num);//將int32轉換為字節數組 num=BitConverter.ToInt32(bytes,0);//將字節數組內容再轉成int32類型 2、將字符串轉為16進制字符,允許中文 private string StringToHexString(string s, Encoding encode) { byte[] b = encode.GetBytes(s);//按照指定編碼將string編程字節數組 string result = string.Empty; for (int i = 0; i < b.Length; i++)//逐字節變為16進制字符 { result += Convert.ToString(b[i], 16); } return result; } 如: ///注意,一個中文轉為utf-8占三個字節,英文占一個字節 System.Console.WriteLine(StringToHexString("中華人民共和國", System.Text.Encoding.UTF8)); 或使用 BitConverter.ToString(Encoding.UTF8.GetBytes("中華人民共和國")) 返回結果為XX-XX-XX 然后再去掉"-" 3、將16進制字符串轉為字符串 private string HexStringToString(string hs, Encoding encode) { string strTemp=""; byte[] b=new byte[hs.Length/2]; for (int i = 0; i < hs.Length / 2; i++) { strTemp = hs.Substring(i * 2, 2); b[i] = Convert.ToByte(strTemp, 16); } //按照指定編碼將字節數組變為字符串 return encode.GetString(b); } 如: string hexstring= StringToHexString("中華人民共和國", System.Text.Encoding.UTF8); string content=HexStringToString(hexstring, System.Text.Encoding.UTF8) 4、將byte[]轉為16進制字符串 public static string byteToHexStr(byte[] bytes) { string returnStr = ""; if (bytes != null) { for (int i = 0; i < bytes.Length; i++) { returnStr += bytes[i].ToString("X2"); } } return returnStr; } 5、將16進制的字符串轉為byte[] private static byte[] strToToHexByte(string hexString) { hexString = hexString.Replace(" ", ""); if ((hexString.Length % 2) != 0) hexString += " "; 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; }
http://blog.csdn.net/kangningxu2008/article/details/6852593
這個寫得也不錯,可以參考。