将byte []转换为二进制的字符串表示形式

Sud*_*ha 3 c#

我需要一个转换Byte[]到一个string包含二进制数序列.我无法使用,Encoding因为它只是将字节编码为字符!

例如,拥有这个数组:

new byte[] { 254, 1 };
Run Code Online (Sandbox Code Playgroud)

我想要这个输出:

"1111111000000001"
Run Code Online (Sandbox Code Playgroud)

Jon*_*Jon 10

您可以将任何数字整数基元转换为其二进制表示形式的字符串Convert.ToString.对byteLINQ中的每个数组执行此操作并连接结果非常简单:

var input = new byte[] { 254 }; // put as many bytes as you want in here
var result = string.Concat(input.Select(b => Convert.ToString(b, 2)));
Run Code Online (Sandbox Code Playgroud)

更新:

上面的代码不会产生每个输入字节恰好有8个字符的结果,这将使得通过查看结果无法知道输入是什么.要获得每字节恰好8个字符,需要进行一些小改动:

var result = string.Concat(input.Select(b => Convert.ToString(b, 2).PadLeft(8, '0')));
Run Code Online (Sandbox Code Playgroud)