问题标签 [bitmask]

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.

0 投票
1 回答
263 浏览

php - FilterIterator 位掩码(或位域)

我正在为位掩码(或者它是位域?)而苦苦挣扎。我不知道该怎么做了。

我想创建一个接受过滤内容标志的 DirectoryFilterIterator。我想我会使用这些位:

因为 aDOT也被认为是 aDIR我也希望能够区分这两者。如果我是正确的,我认为这样的事情应该是可能的:

换句话说,这应该过滤掉,DIR除非它是一个DOT. 但我完全坚持如何让过滤工作(在accept方法中):

...尤其是因为我一直在否定,我有点迷路了。我怎样才能让它正常工作?

0 投票
5 回答
6601 浏览

php - 改进这个 PHP 位域类的设置/权限?

很长一段时间以来,我一直试图找出在 PHP 中使用位掩码或位域的最佳方法,用于我的应用程序的不同区域,以获得不同的用户设置和权限。到目前为止,我所走的最远的是 svens 在 Stack Overflow 帖子 Bitmask in PHP for settings 中贡献的一个类?. 我在下面稍微修改了它,将其更改为使用类常量而不是 DEFINE,并确保 get 方法仅传递一个 int。我还有一些示例代码来测试下面的类的功能。

我正在寻找任何建议/代码来进一步改进这个类,以便它可以在我的应用程序中用于设置,并在某些情况下用于用户权限。

mcrumley 在下面的评论中回答了

另外,我有一个关于常量编号的问题。在此类型的其他类和代码示例中,它将以 2 的幂列出的内容。但是,据我所知,即使我将常量编号为 1、2、3、4、5、6,它的工作方式似乎也是一样的而不是 1、2、4、8、16 等。那么有人可以澄清我是否应该改变我的常数吗?


一些想法......我真的很想找到一种方法来扩展这个类,这样它就可以很容易地与其他类一起使用。假设我有一个User班级和一个Messages班级。User和_Messages类将扩展此类并能够将位掩码用于其设置/权限(以及稍后的其他类)。因此,也许应该更改当前的类常量,以便可以传入它们或其他一些选项?我真的宁愿不必在站点/脚本的其他部分定义 (define('PERM_READ', 1);) 并且希望保持它的某种封装,但也很灵活;我对想法持开放态度。我希望它是坚如磐石和灵活的,就像我说的与多个其他类一起用于设置或权限。可能应该使用某种数组?@Svens 来自我上面链接的上一个问题,发表了一条评论,“实现一些自动的 getter/setter 或 ArrayAccess 以获得额外的效果。- svens”你对类似的事情也有什么看法?

如果可能,请包含示例源代码。

示例用法...

0 投票
5 回答
48746 浏览

c# - 在 C# 中获取整数的上下字节并将其作为 char 数组发送到 com 端口,如何?

在 CI 中会这样做

整数 = 3510;

字符上部 = 数字 >> 8;

char 低 = 数字 && 8;

发送字节(上);

发送字节(下);

上和下都 = 54

在 C# 中,我这样做:

然而,在调试器编号 = 3510、upper = 13 和 lower = 0 中,这没有任何意义,如果我将代码更改为 >> 6 upper = 54,这绝对是奇怪的。

基本上我只是想从16位数字中获取高低字节,并在“GETDM”之后将其发送到com端口

我怎样才能做到这一点?它在 C 中是如此简单,但在 C# 中我完全被难住了。

0 投票
1 回答
1395 浏览

c - 为给定输入生成以下位掩码的最佳方法?

我正在尝试找出生成以下位掩码的最佳方法: - 对于给定的输入 n,输出将是一个位掩码,其中设置了第一个 (n-1) 位,而所有其他位都未设置。

例子:

我知道明显的迭代方式(一次设置一个位),这将花费 O(n) 时间....我只是想知道是否有任何“位魔术”可以在恒定时间内做到这一点,或至少亚线性时间(不使用LUT !!)

有接受者吗?

0 投票
6 回答
2324 浏览

c# - 位掩码的 Int 到 Enum[] 或 Int[]?C#

我有一个看起来像这样的枚举:

建立标志/位掩码很好,但是否可以做类似的事情

导致类似

谢谢。

0 投票
2 回答
204 浏览

c - 为什么我从 C 中的以下代码中收到段错误错误?

我的操作系统类中有一个项目到期,我应该在其中模拟翻译后备缓冲区。

我正在编写一个将在 TLB 未命中后调用的方法。它应该在 TLB 中找到下一个为空或一段时间未命中的条目,删除该条目,并将其替换为上次调用的页表中的条目。调用该方法时会给出页表条目中的数据。

我从以下几行中得到一个段错误:

VBIT_MASK 是一个先前定义的变量,用于屏蔽我现在要插入的位。我不确定我是否误解了如何使用位掩码,或者我的代码是否存在更严重的问题。我意识到要求任何人详细了解整个事情太过分了,但是如果有人对我应该考虑的解决这个问题的方向有任何建议,我将不胜感激!

0 投票
2 回答
2459 浏览

javascript - 位掩码和 javascript 的问题

我不确定我是否做错了什么,但我似乎无法让这个简单的 javascript 工作:

你可以在这里看到它 http://jsfiddle.net/qPEVk/

不应该是 3221225472 吗?

谢谢,

0 投票
9 回答
9124 浏览

c# - 什么时候将标志存储为位掩码而不是使用关联表更好?

我正在开发一个应用程序,其中用户有不同的权限来使用不同的功能(例如读取、创建、下载、打印、批准等)。权限列表预计不会经常更改。对于如何将这些权限存储在数据库中,我有几个选择。

在什么情况下选项 2 会更好?

选项1

使用关联表。

选项 2

为每个用户存储一个位掩码。

0 投票
4 回答
1331 浏览

c# - C# 数字到 BitMask32 到值

我得到一个数字,例如 513。我需要将此数字转换为 bitmask32,然后我需要计算每个 1 位在数组中的位置

例如 513 = 0 和 9

我将如何将数字转换为 bit32 然后读取值?

现在我只是将数字转换为字符串二进制值:

会有更有效的方法来做到这一点吗?如何将值转换为位数组?

谢谢

0 投票
2 回答
1180 浏览

avr-gcc - 解释有关 AVR 端口设置的代码

以下是做什么的?

AFAIK,0xFC 是一个十六进制值。那基本上是说11111100,因此PORTD0-PORTD1是输出,其余的是输入。

该代码的完整解释是什么?