bit和字节数组之间的转化

有一个需求是有16个设备,协议上用4个字节来表示这16个设备,既bit15——bit0代表设备16至设备1,当某个设备被选中时该bit位就置为1,否则置为0;既1 4 6 10设备被选中时,应该是0000 0010 0010 1001,存储为字节数组应该是0x0229
问题是我在存储这16个设备的时候,不知道要怎么才能把上面面的数据先存储为16个bit再转化为相应的字节数据
请问各位有什么更好的方法么?

玩的懂二进制的,就直接 用 |,&,^ 这种位操作

玩不懂二进制的,可以用BitArray,这个类做的事情“16个bit再转化为相应的字节数据”就是你的要求,不过他用bool类型代替了
不过如果有这个类,请注意大小端字节序转换问题

16个设备只需要2个字节啊,你用4个字节来存,到底是个什么排序方式?
你要从一个字节里拿出某一位来,就这样
b>>i & 1,b是字节,i是第几位,取值范围[0,7]
你要把某个bit置位,就这样
b|=1<<i
你要把某个bit复位,就这样
b&=~(1<<i)

用 Int16 类型存储操作
c# 的int 类型是4字节的 (Int32)