我想创建一个代表MPEG 2 Transport Stream packet的类。我想要一个存储13位PID值的类属性?什么是最好的数据类型?你会用掩码存储这个值吗?我认为我应该将值转换为int ...这是最简单的解决方案吗?如何存储不是字节的不同位数?
public class Mpeg2TransportPacket
{
byte SyncByte { get; set; }
bool TransportErrorIndicator { get; set; }
bool PayloadUnitStartIndicator { get; set; }
bool TransportPriority { get; set; }
int PID { get; set; }
}
答案 0 :(得分:3)
对于像我这样的单个值,我认为System.Int16没问题。
如果你需要掩盖13位,你会使用一个掩码和&操作
var mask = 0b0001_1111_1111_1111; // c# v7.0 binary literal, low order bits
var pid = value & mask; // value is what you are applying the mask to
答案 1 :(得分:0)
我会将PID存储到BitArray类中,然后映射类的每个布尔属性以从此类写入/读取
为了获得更好的表现,请使用BitVector32。