对于我的生活,我不记得如何设置,删除,切换或测试位域中的位.要么我不确定,要么混淆它们,因为我很少需要这些.因此,"比特作弊表"会很好.
例如:
flags = flags | FlagsEnum.Bit4; // Set bit 4.
Run Code Online (Sandbox Code Playgroud)
要么
if ((flags & FlagsEnum.Bit4)) == FlagsEnum.Bit4) // Is there a less verbose way?
Run Code Online (Sandbox Code Playgroud)
您能举例说明所有其他常见操作,最好是使用[Flags]枚举的C#语法吗?
我有一个字节,特别是来自字节数组的一个字节,它通过从另一个设备发送的UDP进入.该字节存储器件中8个继电器的开/关状态.
如何获取所述字节中特定位的值?理想情况下,扩展方法看起来最优雅,返回bool对我来说最有意义.
public static bool GetBit(this byte b, int bitNumber)
{
//black magic goes here
}
Run Code Online (Sandbox Code Playgroud) 说,我有一个整数10101,我想取消第三位得到10001; 如果我有10001,我仍然会得到10001; 我怎么能实现它?
unset(int i, int j)
int i= 10101 or 10000
int j = 00100
Run Code Online (Sandbox Code Playgroud)