问题标签 [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.
c# - 检查标志枚举是否包含所有字符串
我有以下标志枚举:
我有一个 RoleModels 变量和一个字符串列表:
我想检查所有角色字符串是否都在角色中。
检查应该不区分大小写......在这种情况下,它将是正确的。
我试图将字符串转换为一个枚举:
然后以某种方式检查所有角色 2 是否都在角色 1 中。
但我无法完成这项工作......
有人可以帮我吗?
谢谢你,米格尔
bit-manipulation - 不确定我的位掩码逻辑
我有对象,我只想根据不同的标准向访问者显示。该对象有一个位掩码,我定义了以下条件:
标志的组合当然是可能的,例如1+4+16
or 2+4
。
一个项目可以在 3 种登录条件下显示,例如:已登录、未登录或两者兼有。因此我需要FLAG_NOTLOGIN
.
我对FLAG_ALWAYS
......应该是0
,还是应该覆盖所有其他标志感到困惑4095
?
还是我应该删除FLAG_NOTLOGIN
?
c++ - 枚举是实现位标志的规范方法吗?
目前我在一个小游戏实验中使用枚举来表示一个状态。我这样声明它们:
这样我就可以这样使用它们:
但我想知道这是否是实现位标志的正确方法。位标志没有特殊的容器吗?我听说过std::bitset
,我应该使用它吗?你知道更有效的方法吗?
我做对了吗?
我忘了指出我正在重载枚举的基本运算符:
|=
我不得不为static_cast
.
c# - 如何从 ORed 标志中检索返回值
假设我正在处理 CreateFileA
我有
因此这意味着如果我需要读写我会做
API如何反转OR操作以知道它包含哪些标志?换句话说,假设我得到了那个值“0C0000000h”,我需要知道它包含什么访问,我应该对这个数字做什么操作?
我的观点是,如果我有大约 100 个标志并且我对它们进行了 ORed/AND 运算,那么最终会得到一些复杂的数字,我如何检索用于组成该数字的标志?
bit - 测试位掩码是否只有一个标志
我一直在搜索谷歌和堆栈溢出来寻找这个问题的答案,但我无法明确找到它。
我将如何测试位掩码以查看它是否设置了一个且只有一个标志?IE 如果在掩码内设置了任何其他标志,它会返回 false?
我知道我可以检查面具是否有任何标志。
我认为检查掩码是否只有一个标志有点复杂。我访问过的每个解释位掩码的站点都有典型的添加/删除/等,但从未提及单一检查。
我确实在 SE 上看到了这个帖子。形成和检查位掩码的方法我不确定这个掩码和魔法是否是我正在寻找的东西,如果是的话,我对它的使用方式有点迷茫。
c# - 使用 Enum.HasFlag() 检查 UInt16 的标志?
我有一个 C#/.NET 4.0 应用程序,它接收和解析来自网络连接的一些数据。我需要解析的一个特定数据是表示一组标志的 UInt16 值。我已经定义了一个表示这些标志的枚举,如下所示:
我将尝试对这个 UInt16 值使用按位运算符来确定它指示的哪些标志已设置。但后来我遇到了 Enum.HasFlag() 方法,乍一看,这似乎比按位运算更容易。我一直在尝试使用以下方法来确定在 UInt16 值中设置了哪些标志:
此方法显然采用 Fields 类型的参数(我的枚举),但我正在使用发送给我的 UInt16 值。我假设我需要将 UInt16 转换为 Fields 枚举的实例,但我不知道该怎么做。它似乎不像只是投射它那么简单(这不会给我一个错误,但也不会返回预期的结果)。是否可以使用 Enum.HasFlag() 来做到这一点,或者我应该只实现按位运算并完成它?
php - 处理 PHP 位标志
我有一个 PHP 类,它带有一个将实例打印到表行中的方法。有时我希望在开始时打印出没有名称的行,有时我希望打印所有行项目,依此类推。
我决定使用位标志以使代码更具可读性,但是标志的处理看起来很糟糕。这是我第一次使用位标志。
我在类的顶部定义了如下标志;
使用标志的函数如下所示;
如您所见,如果BAT_TABLE_ROW_ALL
设置了,所有选项都按计划执行。
问题是,如果我出于某种原因要添加另一个标志(因此将其设置为 8,将 ALL 设置为 15——尽管这将是微不足道的),我将不得不重写整个函数。这不可能。
有没有更好的方法来编写上面的函数,所以我所要做的就是更新标志定义,然后将额外的标志执行添加到函数中?
arrays - 位标志数组的数据结构是什么?
我正在将一些命令式代码移植到 Haskell。我的目标是分析一个可执行文件,因此文本部分的每个字节都被分配了一些标志,这些标志都适合一个字节(准确地说是 6 位)。
在像 C 这样的语言中,我只需分配一个字节数组,将它们归零并随时更新它们。我将如何在 Haskell 中有效地做到这一点?
换句话说:我正在寻找一个具有按位访问和恒定时间更新的 ByteString,因为我反汇编了更多的文本部分。
编辑:当然,如果它同样有效,任何其他类型的数据结构都可以。
c# - Failing to use the FlagsAttribute on an enum (Cannot resolve symbol 'HasFlag')
I have an asmx web service in c# and have recently discovered the very useful FlagsAttribute
for enums. My declaration is as follows:
I then test the enum as follows:
However, the HasFlag
part of the last line is highlighted red Cannot resolve symbol 'HasFlag' and my code wont compile. Any ideas why?
c# - 从 C# 中的值解码位掩码
我正在尝试解码位掩码
如何编写一个函数来解码像 5722635 这样的值并返回以 5722635 编码的所有便利设施的列表。
结果应如下所示:
该物业有以下设施:
- 商业中心
- 健身中心
- 互联网
- 现场可用的水疗中心
- 保姆
- 停車處
- 无障碍旅行路径
- 无障碍浴室
- 无障碍淋浴间
- 客房内无障碍设施
- 盲文或凸起标牌
我一直在尝试像
但不能让它工作。任何有关如何使这项工作正常工作的建议将不胜感激。