问题标签 [bit-masks]

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 投票
3 回答
1744 浏览

c# - 为什么 BitConverter 返回 Bytes 以及如何获取这些位?

作为输入,我得到一个 int(好吧,实际上是一个我应该转换为 int 的字符串)。
此 int 应转换为位。
对于每个具有 1 的位位置,我应该得到该位置。
在我的数据库中,我想要所有具有 int 值字段的记录,该字段将此位置作为值。
我目前有以下幼稚的代码,它应该询问我的实体(持有 databaseValue)是否与位置匹配,但显然不能正常工作:

首先,我有一个字节数组,因为显然没有位类型。我应该使用 Boolean[] 吗?那么,我该如何填充这个数组呢?最后,如果前面的语句得到解决,我应该只返回 bits[position]

我觉得这应该以某种方式用位掩码解决,但我不知道从哪里开始..

任何帮助,将不胜感激

0 投票
2 回答
1177 浏览

java - 编写函数:short GetBits(short data, int p, int n)

我正在编写一个函数 short getBits(short data, int p, int n)

我试过了:

这适用于 getBits( (short) 0x7000, 0, 4) 但如果我用 8 替换 7 我会得到一个负值。

0 投票
4 回答
5146 浏览

bitmask - 位掩码问题

阅读销售点系统的文档,这里是他们给出的一个面具的例子,它应该告诉你选择了哪些座位。我想不通。我完全理解位掩码。这个例子是错的吗?

功能

此系统变量是一个包含座椅过滤器掩码的八字符串。

类型/尺寸

A8

句法

@Filter_mask

过滤器掩码用法

此系统变量是只读的。

Filter_mask 示例

以下是过滤器掩码的示例:

0 投票
7 回答
20064 浏览

c++ - 位掩码开关语句

我在项目的一部分中有这段代码:

这很好,而且效果很好,但我一直想知道是否可以通过开关来完成。我在想这样的事情:

所以我的问题是:

  • 我刚刚解决了我的问题吗?我想我有,但它是一个干净的解决方案吗?
  • 有没有更简单的方法来完成这个?
  • 混合#defines 和函数是一个坏主意吗?

  • 0 投票
    4 回答
    5546 浏览

    c# - 如何检查返回的位掩码值?

    我从 C# 调用这个函数: GetKeyboardStatus()

    查看文档,它说它返回一个位掩码值。我的代码的目标是确定设备是否具有带有字母数字字符的物理键盘。我已经成功调用了这个函数,返回值为 15。但是由于我不懂位掩码,我不知道如何将它与 0x0008 值进行比较,根据文档“指示是否键盘硬件有字母数字键。”。我没有将此标记为 Windows Mobile 或 Compact Framework 问题,因为我认为回答我的问题您需要了解的只是位掩码和 C#,我希望答案能扩展我对如何使用位掩码的理解(虽然不是必需的)。这是我的代码。我认为唯一错误的部分是 return 语句:

    感谢您提供帮助,但我发现这不是确定是否有带有字母数字键的物理键盘的可靠方法。我尝试了 2 个设备,一个带键盘,一个不带,GetKeyboardStatus 函数为它们返回 15,所以我什至无法测试答案中位掩码的解释。

    0 投票
    3 回答
    2925 浏览

    c - Is there a concise way to create bit masks in C?

    I need to create three bit masks that end up in three 32-bit unsigned ints (let's call them x, y and z). The masks should end up like this:

    So far I've got this:

    But it seems a bit messy. Can anyone come up with a more concise (and readable) way?

    0 投票
    2 回答
    2068 浏览

    php - 在 PHP 中实现位掩码或关系 ACL

    我认为 PHP 人熟悉函数中的E_ALL和其他各种位掩码常量error_reporting()。它们是数字常数,例如:E_ALL手段32676E_NOTICE手段8。我可以说我想要所有错误,但要显示通知,我通过E_ALL & ~E_NOTICE作为参数传递来做到这一点error_reporting()。但本质上,我告诉它32759哪个是32767 - 8.

    这些位掩码从函数的输出集中获取它们的值,f(x) = 2^x并对这些值进行加减运算,我们可以微调要得到的错误。

    我正在考虑在我的框架中实现一个更可配置的访问控制。为此,我希望设置用户的位掩码将具有相同的将数值相加的方法,问题是我不知道如何实现这一点,如何检查请求的值和当前值:用户是否有权访问 foobar?.

    另一个问题是可扩展性。我可能只有 31 个唯一位(因为2^32达到了太大且无法维护的状态),如果我需要经历(现在还没有真正计划)这个障碍,那么迁移会很困难吗?我对访问控制的另一个想法是建立一个表,将user.id他拥有的访问位的整数值和整数值链接在一起。

    总结一下,以下两个选项中哪一个是更好的解决方案?

    • 使用用户表中的一个字段来存储位掩码,然后在需要时从中获取请求的位。
    • 在表中定义一组访问标志,并拥有一个将用户链接到访问权限的关系表,利用关系数据库的强大功能来满足我们的需求。

    我正在研究第二种方法,但我不知道哪种方法最好用。

    0 投票
    3 回答
    92 浏览

    c - 分析 &, && 和 | 这段代码?

    我想说明这段代码的区别

    在代码中 & 用于“屏蔽”一点,如果使用它,结果将完全不同&&。在那种情况下,表达式1已被解释为真值 ( TRUE),而不是用于保留其中一位的一位位置。正确的?但是,如果我这样做了,会发生什么:

    在第一种情况下,1它用于仅保留 LSB(最低有效位),即最右边的位,没有别的。取而代之的是什么|?如果我做这个改变会有什么不同?

    0 投票
    0 回答
    1883 浏览

    mongodb - 位掩码比较 Mongo 查询

    对于博客网络应用程序,我试图在 mongo 中对一组用户、博客和资源操作进行建模。用户可以对博客文章的“赞”、“星”、“特征”资源(例如“博客文章”、“链接”、“图片”等)执行不限次数的操作。

    模型看起来像

    用户(user_id:long)资源(resource_id:long)资源/操作(int)

    前 16 位用于存储操作,接下来的 15 位用于识别资源的类型。

    所以给定一个查询, - 找到喜欢博客文章的用户列表。

    在 mongo 中建模和查询它的最佳方法是什么?

    我想到了类似的东西

    并对查询参数和 Resource/Action 字段使用位掩码 AND 操作来过滤正确的记录。但看起来 mongo 不支持按位运算。我读了 $where javascript 函数可用于此目的 - 但我担心使用 js 函数调用进行查询的性能。

    实现这个用例的好方法是什么?

    谢谢!

    0 投票
    1 回答
    1866 浏览

    c - 用 0xFF 掩码字符和强制转换(无符号字符)之间有什么区别

    上面的代码给出:

    警告:由于数据类型范围有限,比较总是错误的

    正如我所料的错误。

    我打字没关系

    或者

    我理解第一个,但第二个会发生什么?

    用遮罩有什么作用0xFF