【发布时间】:2012-03-16 09:08:57
【问题描述】:
案例:
再次尝试通过我的 NIC 捕获数据包,
我开发了 2 个扩展用于捕获可变位数
public static string ReadBits ( this BinaryReader Key , int Value )
{
BitArray _BitArray = new BitArray ( Value );
for ( int Loop = 0 ; Loop > Value ; Loop++ )
{
/* Problem HERE ---> */ _BitArray [ Loop ] = Key . ReadBoolean ( );
}
return BitConverter . ToString ( _BitArray . ToByteArray ( ) );
}
public static byte [ ] ToByteArray ( this BitArray Key )
{
byte [ ] Value = new byte [ ( int ) Math . Ceiling ( ( double ) Key . Length / 8 ) ];
Key . CopyTo ( Value , 0 );
return Value;
}
问题:
_BitArray [ Loop ] = Key . ReadBoolean ( );
当我试图读取单个位时,但指的是MSDN Documentation,
它将流位置提前 1 BYTE 而不是 1 BIT !!!
从当前流中读取一个布尔值并推进当前流 流的位置一个 字节。
问题:
我真的可以“仅”捕获 1 位并将流位置提前 1 位吗?
请给我建议解决方案或想法:)
问候,
【问题讨论】:
标签: c# bitarray binaryreader binarystream