从字节数组转换为字符串hex c#

che*_*zer 4 c# arrays string byte

假设我有字节数组.

byte[] a = new byte[] {0x33,0x43,0xFE};
Run Code Online (Sandbox Code Playgroud)

我想把它转换成string.

 string str = convert(a);  
Run Code Online (Sandbox Code Playgroud)

我的str应该是这样的:

"33 43 FE"
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Sha*_*ood 11

使用bitconverter类

 BitConverter.ToString(Bytes);
Run Code Online (Sandbox Code Playgroud)


Nik*_*vic 6

您可以使用此代码:

byte[] a = new byte[] { 0x33, 0x43, 0xFE };
string str = string.Join(" ", a.Select(b => string.Format("{0:X2} ", b)));
Run Code Online (Sandbox Code Playgroud)

所以convert方法可以是

string convert(byte [] a)
{
    return string.Join(" ", a.Select(b => string.Format("{0:X2} ", b)));
}
Run Code Online (Sandbox Code Playgroud)

X2是为了让两个大写的十六进制数字表示的每个字节的使用,如果你想只比16小的像数字一个数字0xA,例如,使用{0:X},如果你想小写数字使用的{0:x}格式。