bitflags相关内容

[Flags] 属性到底有什么作用?

应用 [Flags] 真的吗? 我知道它修改了 Enum.ToString,但它还有别的作用吗?(例如,不同的编译器或运行时行为等) 编辑:是的,我知道它记录一个事实,即枚举旨在用作按位标志,并且应用它更合乎逻辑位标志.不过,我更多的是询问具体的行为变化,而不是一般的编程实践. 解决方案 来自 MSDN 文章: 有趣的是,当Flags 被指定,Parse 和 Format ..
发布时间:2021-12-29 16:41:33 C#/.NET

确定设置了字节中的哪个位

我有一个 byte 用于 bitflags.我知道 byte 中的只有一个 位在任何给定时间被设置. 例如:unsigned char b = 0x20;//(00100000) 第六位设置 我目前使用以下循环来确定设置了哪个位: int getSetBitLocation(unsigned char b) {国际我= 0;而( !((b >> i++) & 0x01) ) { ;} ..
发布时间:2021-12-20 16:18:35 其他开发

测试位掩码是否只有一个标志

我一直在搜寻google和堆栈溢出来寻找该问题的答案,但我一直无法明确找到它. 我将如何测试位掩码以查看其是否设置了一个且仅设置了一个标志? I.E如果在掩码中设置了其他任何标志,它将返回false吗? 我知道我可以检查一下面具是否有任何标志. (currentFlags & state) == state 我认为检查掩码是否只有一个标志要复杂一些.我访问过的每个站点(解释位 ..
发布时间:2020-09-21 04:31:55 其他开发

如何理解O_RDONLY = 0?

我正在处理文件状态标志. 在执行的测试中,我发现了 #include #include "fcntl.h" int main() { const int flag = O_RDONLY; printf( "*** Flag O_RDONLY = %5d\n", flag); return 0; } 产生此输出 *** Flag O_RD ..
发布时间:2020-06-14 19:17:06 其他开发

Bitflag枚举在C ++中

使用枚举在C ++中存储bitflags是有点麻烦,因为一旦枚举值是ORed,它们会丢失它们的枚举类型,这会在没有显式转换的情况下导致错误。 此问题的接受答案表明,重载 | 运算符: FlagsSet运算符|(FlagsSet a,FlagsSet b) { return FlagsSet(int(a)| int(b)); } 我想知道这个方法是否有任何运行 ..
发布时间:2017-08-24 01:18:46 C/C++开发

[Flags]属性真的做了什么?

应用 [Flags] 真的吗? 我知道它修改了 Enum.ToString ,但它还做其他事情吗? (例如不同的编译器或运行时行为等) 编辑:是的,意识到它文档枚举旨在用作按位标志,而将其应用于位标志更为合乎逻辑。 解决方案 从 MSDN文章: $ b $有趣的是,当指定 Flags时,Parse和Format 方法具有高级功能。 同样,Parse方法可以 成 ..
发布时间:2017-08-23 20:19:38 C#/.NET

与国旗方法扩展Enum?

我已经找到了如何创建扩展方法,从按位枚举读出单值很好的例子。但现在,C#4增加了真的不需要他们的HasFlag方法。 我觉得这是真正有用的,虽然是设置一个标志的延伸 我有,我需要单独设置标志值很多情况下 我想与此签名扩展方法: enumVariable.SetFlag(EnumType.SingleFlag,真); 或可能: enumVariabl ..
发布时间:2016-10-01 20:46:58 C#/.NET

#define的bitflags和枚举 - 在&QUOT和平共处; C"

我刚刚发现bitflags的喜悦。我有关于“最佳做法”关于C.使用bitflags我学到的一切,从我在网上找到,但仍然有问题的各种示例的几个问题。 为了节省空间,我在一个结构使用单一的32位整型字段( A->标记)重新present几个不同的套布尔属性。总之,20个不同位的#define D。其中有些是真正的presence /不存在标志(存储内部与储存 - 外部)。其他人有两个以上的值( ..
发布时间:2016-08-21 21:57:15 C/C++

确定在字节单位被设置

我有我使用bitflags一个字节。我知道, 且只有一个的在字节位设置在任何给的时间。 例如: unsigned char型B = 0x20的; //(00100000),6日最高位集 我目前使用下面的循环,以确定哪些位设置: INT getSetBitLocation(unsigned char型B){ INT I = 0; 而(((B>!I标记++)及0×01)){; } ..
发布时间:2016-08-07 19:41:39 开发方法

什么是[标记]属性真的?

这是什么应用 [国旗] 真的? 我知道它会修改 Enum.ToString >,但它做什么吗? (如不同的编译器或运行时的行为,等等。) 修改:是的,我知道,它的文件的事实,枚举拟用作按位标志,而且它更符合逻辑的应用它比特标志。我问更多具体的行为改变,虽然,不是一般的编程实践。 解决方案 从 MSDN文章: 有有趣的是,当 标志被指定,分析和格式化 方法采用先进的功能。 同样,Pa ..
发布时间:2015-11-24 21:22:20 C#/.NET