1

可能重复:
如何将字节数组转换为十六进制字符串,反之亦然?

我有一个列表,我需要将其转换为十六进制字符串。我觉得我转换的方式很安静。

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

我个人最喜欢的做法是深埋在 .NET SoapHexBinary中的一个鲜为人知的类

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 回答