3 回答
TA贡献1830条经验 获得超3个赞
如果您没有这种LINQ恋物癖,那么最近很常见,您可以尝试正常的方法
string input ....
int numOfBytes = input.Length / 8;
byte[] bytes = new byte[numOfBytes];
for(int i = 0; i < numOfBytes; ++i)
{
bytes[i] = Convert.ToByte(input.Substring(8 * i, 8), 2);
}
File.WriteAllBytes(fileName, bytes);
LINQ很棒,但是必须有一些限制。
TA贡献1900条经验 获得超5个赞
有点晚了,但这是我的2美分:
var binaryStr = "01110100011001010111001101110100";
var byteArray = Enumerable.Range(0, int.MaxValue/8)
.Select(i => i*8)
.TakeWhile(i => i < binaryStr.Length)
.Select(i => binaryStr.Substring(i, 8))
.Select(s => Convert.ToByte(s, 2))
.ToArray();
File.WriteAllBytes("C:\temp\test.txt", byteArray);
- 3 回答
- 0 关注
- 1075 浏览
添加回答
举报