0
我试图从8位包装转换为7位包装使用比尔Koukoutsis从CodeProject.com仍然似乎是去源的比特流库对于C#中的这种事情。我使用的代码如下(fs为代码以外初始化的FILESTREAM):CodeProject C#bitstream class给出了零阵列
for (int block = 0; block < count; block++)
{
var theBlock = fetcher(block);
if (theBlock.Any(x => (x != 0)))
{
Console.Write("Good Block =>");
}
else
{
Console.Write("Zero block =>");
}
var sevenBitSize = theBlock.Length - (theBlock.Length/8);
var theCodedBlock = new byte[sevenBitSize];
var ms = new MemoryStream(theCodedBlock);
BitStream bms = ms;
using (bms)
{
foreach (byte t in theBlock)
{
bms.Write(t, 0, 7);
}
bms.WriteTo(fs);
}
if (theCodedBlock.Any(x => (x != 0)))
{
Console.Write("Good Block\n");
}
else
{
Console.Write("Zero block\n");
}
}
运行时,这将产生“好块=>零块”的恒定流。因此,出于某种原因,BitStream将0输出到代码块数组中。它看起来工作正常从代码中的其他地方读取内存数组中的值,所以我做错了什么或者这是一个BitStream错误?