我有一个表示位的字符串,例如:
"0000101000010000"
Run Code Online (Sandbox Code Playgroud)
我想将其转换为获取字节数组,例如:
{0x0A, 0x10}
Run Code Online (Sandbox Code Playgroud)
字节数是可变的,但总是有填充以形成每字节8位(因此1010变为000010101).
使用内置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)
| 归档时间: |
|
| 查看次数: |
21383 次 |
| 最近记录: |