让我说我有:
byte[] data = new byte[] { 1, 212, 29, 144 };
我唯一可以想出做一个按位AND&首先将byte []转换为uint:
if ((BitConverter.ToUInt32(data,0)) & 0x7) == 1)
{
//If the last 3 bits are ...111, then do something
}
这看起来很难看。有没有更好的方法在byte []上执行按位运算而不必转换为UInt?感谢。
答案 0 :(得分:1)
不,.Net中没有直接支持字节数组上的位操作。
你可以
long
值之外编写长constan)答案 1 :(得分:-1)
我找到了这个解决方案:
byte b1 = 0x11;
byte b2 = 0xF0;
byte b3 = (byte)(b1 & b2);