C# 位元組陣列和字串 互轉
阿新 • • 發佈:2018-11-01
本章講述:部分資料型別,格式轉換(十六進位制字串和位元組陣列 互轉 位元組陣列和字串 互轉)
public class HexConverter { #region 格式轉換 /// <summary> /// 轉換十六進位制字串到位元組陣列 /// </summary> /// <param name="msg">待轉換字串</param> /// <returns>位元組陣列</returns> public static byte[] HexToByte(string msg) { msg = msg.Replace(" ", "");//移除空格 //create a byte array the length of the //divided by 2 (Hex is 2 characters in length) byte[] comBuffer = new byte[msg.Length / 2]; for (int i = 0; i < msg.Length; i += 2) { //convert each set of 2 characters to a byte and add to the array comBuffer[i / 2] = (byte)Convert.ToByte(msg.Substring(i, 2), 16); } return comBuffer; } /// <summary> /// 轉換位元組陣列到十六進位制字串 /// </summary> /// <param name="comByte">待轉換位元組陣列</param> /// <returns>十六進位制字串</returns> public static string ByteToHex(byte[] comByte) { StringBuilder builder = new StringBuilder(comByte.Length * 3); foreach (byte data in comByte) { builder.Append(Convert.ToString(data, 16).PadLeft(2, '0').PadRight(3, ' ')); } return builder.ToString().ToUpper(); } public static string ByteToString(byte[] InBytes) { string StringOut=""; // foreach (byte InByte in InBytes) // { // StringOut=StringOut + String.Format("{0:X2} ",InByte); // } StringOut = System.Text.Encoding.ASCII.GetString(InBytes); return StringOut; } public static byte[] StringToByte(string InString) { string[] ByteStrings; ByteStrings = InString.Split(" ".ToCharArray()); byte[] ByteOut; ByteOut = new byte[ByteStrings.Length-1]; for (int i = 0;i==ByteStrings.Length-1;i++) { ByteOut[i] = Convert.ToByte(("0x" + ByteStrings[i])); } return ByteOut; } #endregion }