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錯誤?