C#里的位 怎么用的
比如 5个字节的数据
6位表示消息类型
2位表示一个数
30位表示一个码
2位又表示一个数
这样的数据按位取值的要怎么弄呀
[解决办法]
Byte数组
[解决办法]
5字节就是40位,自己挨个取
[解决办法]
static bool GetBit(int data, int bit){ int test = 1 << (bit - 1); return (data | test) == data;}
[解决办法]
System.Collections.BitArray,或者BitConverter.ToInt64/ToUInt64然后用位运算来取值
[解决办法]
namespace ConsoleApplication6{ class Program { static byte[] bs = { 231, 132, 120, 97, 65, 0, 0, 0 }; static void Main(string[] args) { ulong i64 = BitConverter.ToUInt64(bs, 0); Console.WriteLine("{0:x}", getNumber(i64, 0, 6)); //0-6位 Console.WriteLine("{0:x}", getNumber(i64, 6, 2)); //7-8位 //..... Console.ReadLine(); } static ulong getNumber(ulong i64, int start, int len) { i64 = i64 << 64 - start - len >> 64 - len; return i64; } }}