如何将一串位转换为字节数组

Roa*_*ast 5 .net c# parsing

我有一个表示位的字符串,例如:

"0000101000010000"
Run Code Online (Sandbox Code Playgroud)

我想将其转换为获取字节数组,例如:

{0x0A, 0x10}
Run Code Online (Sandbox Code Playgroud)

字节数是可变的,但总是有填充以形成每字节8位(因此1010变为000010101).

Ben*_*zun 8

使用内置Convert.ToByte()和读取8个字符的块,而不重新发明的东西..

除非这是应该教你关于按位操作的东西.

更新:


从Adam那里偷东西(可能过度使用LINQ.这可能过于简洁,正常的循环可能会更好,取决于你自己(以及你的同事的!)首选项):

public static byte[] GetBytes(string bitString) {
    return Enumerable.Range(0, bitString.Length/8).
        Select(pos => Convert.ToByte(
            bitString.Substring(pos*8, 8),
            2)
        ).ToArray();
}
Run Code Online (Sandbox Code Playgroud)