问题标签 [bitflags]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
language-agnostic - 如何选择位标志值?
我有一组选项,一些正交(可以以任何组合组合),一些排他(只允许从集合中选择一个),并且需要选择一组enum
值,以便它们可以按位组合or
并提取与位and
。我希望or
-ing 无效组合是可检测的。
有没有这样的生成工具enums
?
为清晰起见进行编辑
我正在寻找可以利用某些标志无效的事实来减少使用的位数的东西。我能够检测错误的要求是软的。如果事情搞砸了,我不需要知道使用了什么。
我正在使用 C#,但任何解决方案都应该有帮助。
一个示例模式是:
得到 6 个独占标志和 2 的正交对成 6 位
快速测试表明 5 位给出 9 个值,6 位给出 20,...
c++ - 枚举位域容器类
我试图编写一个小类来更好地理解 C++ 中的位标志。但有些事情没有解决。它打印错误的值。哪里有问题?我是否误解了如何添加标志?或者检查位域是否有它们?
继承人的代码:
程序输出:
c - #defined bitflags and enums - 在“c”中和平共处
我刚刚发现了位标志的乐趣。我有几个关于在 C 中使用位标志的“最佳实践”的问题。我从网上找到的各种示例中学到了一切,但仍有疑问。
为了节省空间,我在 struct ( A->flag
) 中使用单个 32 位整数字段来表示几个不同的布尔属性集。总共有 20 个不同的位是#define
d。其中一些是真正的存在/不存在标志(STORAGE-INTERNAL vs. STORAGE-EXTERNAL)。其他的有两个以上的值(例如互斥格式集:FORMAT-A、FORMAT-B、FORMAT-C)。我已经定义了用于设置特定位的宏(同时关闭互斥位)。我还定义了用于测试标志中是否设置了特定位组合的宏。
但是,在上述方法中丢失的是最能被枚举捕获的特定标志分组。对于编写函数,我想使用枚举(例如,STORAGE-TYPE 和 FORMAT-TYPE),这样函数定义看起来不错。我希望仅使用枚举来传递参数和#defined 宏来设置和测试标志。
(a) 如何
A->flag
以可移植方式(跨 32 位/64 位平台)将标志 ( ) 定义为 32 位整数?(b) 我是否应该担心
A->flag
与#define
d 常量与枚举的存储方式的潜在大小差异?(c) 我是否让事情变得不必要地复杂,这意味着我应该坚持使用
#define
d 常量作为普通int
s 传递参数吗?在这一切中我还应该担心什么?
对于这个表述不清的问题,我深表歉意。这反映了我对潜在问题的无知。
c++ - C++ 中的位标志枚举
在 C++ 中使用枚举来存储位标志有点麻烦,因为一旦枚举值被 ORed,它们就会失去它们的枚举类型,这会在没有显式转换的情况下导致错误。
这个问题的公认答案建议重载|
运算符:
我想知道这个方法是否有任何运行时影响?
javascript - 如何在javascript中计算位标志?
我正在为 SEO 编写一个免费工具......从 seomoz 实现一个 api,标志看起来像这样
这些只是一些,但我不知道如何在 javascript 中计算正确的位标志......它只是我想要使用的标志的所有整数的 OR 吗?一个小片段向我展示如何制作一个包含其中一些标志的 var 会很棒......
感谢您的帮助!
c++ - 如何命名一组标志?
我有一个项目,其中许多对象通过维护简单的布尔标志来保持状态。这些有很多,所以我将它们维护在 a 中uint32_t
并使用位掩码。现在有很多标志要跟踪,我为它们创建了一个抽象(只是一个包装 的类uint32_t
)用set()
,clear()
等。
我的问题:这个类的准确、简洁的名称是什么?我可以给这门课起什么名字,这样你就可以合理地知道它是什么 [for] 只知道这个名字?
我的一些想法:
- 旗银行
- 标志数组
- ETC
有任何想法吗?
提前致谢!
干杯,
-克里斯
algorithm - 是否有使用以 2 为底的数字对唯一选项列表进行编码的技术的名称?
对于这个问题相当模糊的性质,我深表歉意,我从来没有正式学习过编程,在这种情况下,谷歌对于像我这样的自助者来说毫无用处,因为关键词非常模棱两可。
我正在编写几个将选项列表编码和解码为 Long 的函数,以便它们可以轻松地在应用程序中传递,你知道这种事情:
1 - 苹果
2 - 橙子
4 - 香蕉
8 - 李子
等在这种情况下,数字 11 代表 Apple、Orange 和 Plum。
我已经让它工作了,但我看到它一直在使用,所以假设该技术有一个通用名称,毫无疑问,目前我无法获得各种最佳实践和聪明的算法。
编辑:谢谢大家,我知道答案会很快到来:)
c# - 为什么 [Flag] 的枚举从 0 开始并以 1 递增?
编辑:似乎大多数人误解了我的问题。
我知道枚举是如何工作的,而且我知道二进制。我想知道为什么带有 [Flags] 属性的枚举是这样设计的。
原帖:
这可能是重复的,但我没有找到任何其他帖子,所以这里。
我敢打赌,它背后有一些很好的理由,我只是觉得它有点容易出错。
如果它做这样的事情不是更有意义吗?
当然..我不太确定它应该如何处理这样的自定义标志
该规范给出了一些指导方针
以 2 的幂定义枚举常数,即 1、2、4、8 等。这意味着组合枚举常量中的各个标志不重叠。
但这也许应该自动完成,因为我敢打赌你永远不会希望我的第一个例子出现。请赐教:)
c# - .NET 框架中位标志的实际使用
正在研究如何通过使用 flags 属性和 bitwize 运算符装饰枚举来将它们用作位标志(见下文)。
.NET 框架中是否有使用此模式的地方?我喜欢这个,但想看看更多现实生活中的例子
python - 我应该如何在 django admin 中表示位标志 int 字段?
我有一个定义如下位域的数据模型:
并像这样使用:
我的问题是:
A)在管理站点中将不同位标志表示为单独项目的最简单方法是什么?我应该覆盖模板,还是对表单做些什么?
B) 搜索列表怎么样?我可以在模型中创建函数来表示每一位,但是如何进行搜索和排序呢?
我是 Django 的新手。