相关疑难解决方法(0)

2454
推荐指数
25
解决办法
111万
查看次数

枚举上最常见的C#按位操作

对于我的生活,我不记得如何设置,删除,切换或测试位域中的位.要么我不确定,要么混淆它们,因为我很少需要这些.因此,"比特作弊表"会很好.

例如:

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#语法吗?

.net c# enums flags bit-manipulation

197
推荐指数
9
解决办法
16万
查看次数

从字节获取特定位

我有一个字节,特别是来自字节数组的一个字节,它通过从另一个设备发送的UDP进入.该字节存储器件中8个继电器的开/关状态.

如何获取所述字节中特定位的值?理想情况下,扩展方法看起来最优雅,返回bool对我来说最有意义.

public static bool GetBit(this byte b, int bitNumber)
{
    //black magic goes here
}
Run Code Online (Sandbox Code Playgroud)

c#

89
推荐指数
7
解决办法
12万
查看次数

如何取消设置整数中的特定位

说,我有一个整数10101,我想取消第三位得到10001; 如果我有10001,我仍然会得到10001; 我怎么能实现它?

unset(int i, int j)
int i= 10101 or 10000
int j = 00100
Run Code Online (Sandbox Code Playgroud)

c c# c++ java

15
推荐指数
2
解决办法
2万
查看次数

标签 统计

c# ×3

bit-manipulation ×2

c ×2

c++ ×2

.net ×1

bitwise-operators ×1

enums ×1

flags ×1

java ×1