Преобразовать байт-массив в шестнадцатеричную строку и наоборот в C#
В этой статье мы узнаем, как преобразовать байт-массив в шестнадцатеричную строку и наоборот в C#.
Преобразование байт-массива в шестнадцатеричную строку в C#
Способ 1.
public static string ByteArrayToString(byte[] ba) { StringBuilder hex = new StringBuilder(ba.Length * 2); foreach (byte b in ba) hex.AppendFormat("{0:x2}", b); return hex.ToString(); }
Способ 2.
public static string ByteArrayToString(byte[] ba) { string hex = BitConverter.ToString(ba); return hex.Replace("-",""); }
Способ 3.
using System.Runtime.Remoting.Metadata.W3cXsd2001; public static byte[] GetStringToBytes(string value) { SoapHexBinary shb = SoapHexBinary.Parse(value); return shb.Value; }
Преобразование шестнадцатеричной строки в байт-массив в C#:
Способ 1.
public static byte[] StringToByteArray(String hex) { int NumberChars = hex.Length; byte[] bytes = new byte[NumberChars / 2]; for (int i = 0; i < NumberChars; i += 2) bytes[i / 2] = Convert.ToByte(hex.Substring(i, 2), 16); return bytes; }
Способ 2.
using System.Runtime.Remoting.Metadata.W3cXsd2001; public static string GetBytesToString(byte[] value) { SoapHexBinary shb = new SoapHexBinary(value); return shb.ToString(); }