1

重複の可能性:
バイト配列を 16 進数文字列に、またはその逆に変換するにはどうすればよいですか?

私はリストを持っています。それを16進文字列に変換する必要があります。私が変換している方法は静かな長い気がします。

List<byte> TRIGGER_POL = Data.GetRange(23, 1);
byte[] TRIGGER_POL_temp = new byte[TRIGGER_POL.Count];
TRIGGER_POL_temp[0] = TRIGGER_POL[0];
string TRIGGER_POL_hx = BitConverter.ToString(TRIGGER_POL_temp, 0).Replace("-", string.Empty);

これを行うためのより高速で効率的な方法はありますか?

ありがとう..

4

3 に答える 3

3

これを行う方法は失われていますが、これはあなたのために働くかもしれません

 List<string> hexStrings = TRIGGER_POL.Select(b => BitConverter.ToString(new byte[]{b})).ToList();

または、1つの文字列だけが必要な場合

string hex = BitConverter.ToString(TRIGGER_POL.ToArray());
于 2013-01-30T04:07:12.813 に答える
2

これを行うための私の個人的な好みの方法は、 .NETSoapHexBinaryの奥深くに埋め込まれたあまり知られていないクラスです。

byte[] tmp1 = SoapHexBinary.Parse("DEADBEEF"); //tmp1 now equals the array {0xDE, 0xAD, 0xBE, 0xEF}
string tmp2 = new SoapHexBinary(tmp1).ToString(); //tmp2 now equals "DEADBEEF"
于 2013-01-30T04:10:26.550 に答える
1

これを試して:

public static string ConvertToHex(byte[] bytes)
{
    SoapHexBinary hexBin = new SoapHexBinary(bytes);
    return hexBin.ToString();
}
return ConvertToHex(TRIGGER_POL.ToArray());
于 2013-01-30T04:12:04.390 に答える