问题标签 [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.
c++ - if (mask & VALUE) 还是 if ((mask & VALUE) == VALUE)?
您可能熟悉enum
位掩码方案,例如:
我看过很多代码,然后测试掩码中的某个位,例如
但这不等于吗?
有什么理由使用第一个版本吗?在我看来,第二个较短的版本更清晰。
也许 C 程序员遗留下来的习惯认为应该将真值转换为1
? (即使在那里,较长的版本在赋值或return
语句中比在条件语句测试中更有意义。)
database-design - 在数据库中存储标志
在我的应用程序中,我希望用户选择他的工作日。然后将它们存储在数据库中。当然,我的应用程序将处理用户的数据,例如:今天是特定用户的工作日,谁是今天应该工作的用户,......等等。
我的问题是,这样做的最佳做法是什么?我应该使用:
- 用户表中的位掩码字段
- 通过为 days、users 和 days_users 创建表来创建多对多关系表。先感谢您。
java - 大端位掩码
这不是一个问题,而是一个健全性检查!
如果您需要将 4 个字节作为 Big endian 中的位掩码读入 Java,那么这些字节是:
0x00、0x01、0xB6、0x02。
将其转换为 int 将是:112130
二进制是:00000000000000011010011000000010
一系列字节的字节序不会影响位位置,不是吗?
谢谢
托尼
c++ - C++ 中 typedef 结构的混淆
我有一个我的教授编写的程序,它模拟内存写入 L2 缓存的方式。它有几个地方我应该填写空白。我应该做的第一件事是清除每个缓存条目的有效位。他给了我们以下信息:
因此,据我了解,清除有效位仅意味着将其设置为零。有效位是 v_d_tag 的第 31 位,所以我应该使用位掩码 - 我想按照“v_d_tag = v_d_tag & 0x80000000;”的方式做一些事情?但我不明白的是如何为每个缓存条目完成并执行此操作。我看到了缓存条目数组(l2_cache),但我看不到 v_d_tag 与它的关系。
谁能给我解释一下?
java - Java从函数中剥离零
我正在尝试在 Java 中翻转一些字节,而我拥有的函数对某些字节正常工作,而对其他字节则失败。
我正在使用的功能是这样的:
实现这一点的代码是:
字节从 ByteBuffer 中读取,byteOrder 为 Little Endian。
例如,字节 00 01 B6 02 将位掩码设置为:2B60100 - 这在我的程序中完美运行。
但是,如果字节为 A0 01 30 00,则 bitMask 设置为: 3001A0 - 已从位掩码中删除最后一个零。
有什么办法可以阻止 Java 删除尾随零?
我希望这是有道理的。
谢谢
托尼
python - Python位掩码(可变长度)
为了解决一个研究问题,我们必须在 python 中组织位掩码搜索。作为输入,我们有一个原始数据(我们将其呈现为位序列)。大小约为 1,5Gb。作为输出,我们必须获得特定位掩码的出现次数。让我举个例子来描述这种情况
第一个想法(不是有效的)是像这样使用 XOR:
让我们进行 2 个第一步:
问题是:如何组织从输入中获取位?我们能够获取前 12 位,但是我们如何才能从 1 到 12 位置获取我们需要进行下一次迭代的位?
在我们使用 python BitString 包之前,但是我们搜索所有掩码所花费的时间非常高。还有一个。掩码的大小可以从 12 位到 256 位。有什么建议吗?任务必须在python中实现
c++ - 使用位掩码组合枚举值
我知道可以在枚举值中使用位掩码,但我不知道如何创建它。
我有一个简单的枚举:
状态总是State.minimized
or State.maximized
,并且可以在调整大小时具有其他状态。所以某些东西可以最大化和最小化
java - TopCoder FourBlocks 问题
下面的代码是一个流行的 topcoder 问题FourBlocks的答案(您需要登录)。该解决方案使用位掩码记忆来使用大小为 1 的块和大小为 4 的正方形块在网格中找到最大总和。有人可以帮助我理解它是如何工作的吗?这是做什么的
另外,函数 rec() 如何适合正方形?它只比较 2 位。
c# - 使用位掩码检查二进制文件的信息
我被赋予了以下编程任务(编辑以模糊任务细节):
可以查询原始(二进制)文件(阶段 II 实施所需)以检测 pod 是否存在。格式取决于文件的来源——FormatX 与 FormatY。使用 16 位字长,以下位掩码可用于确定文件中是否存在 pod:
到目前为止我是如何解决这个问题的:我在本地文件系统上有文件,所以我使用 System.IO.File.OpenRead 将它放入 Stream 对象。我想一次读取 16 位/2 字节的流。对于这种大小的第一个“单词”,我尝试应用位掩码来检测我正在处理的格式。然后我跳到第 13 个“单词”并根据该格式检测右/左 pod。
这是我编写的一些初步代码,但它不起作用。我知道我正在阅读的文件应该是 Y 格式,但我的检查不起作用。
谁能看到我的实现有什么问题?我应该如何解释 2 字节字长?
根据@Daniel Hilgarth 的回复进行编辑
感谢 Daniel 的快速回复。我进行了更改,现在它正在为第一个单词工作:
我只需要找到一个示例文件,该文件应该为安装的右/左 pod 返回一个肯定的结果来完成此任务。
php - PHP中的位掩码用于设置?
位和位掩码是我一直在努力理解的东西,但我想学习如何在 PHP 中使用它们进行设置和类似的事情。
我终于找到了一个声称可以做到这一点的课程,据我所知,它似乎有效,但我不确定这是否是最好的方法。我将在下面发布带有示例代码的类文件,以按工作顺序显示它。
如果您有经验,请告诉我是否可以改进它,以提高性能或其他任何东西。我真的很想学习这个,我一直在阅读它,但到目前为止我很难掌握。
班上...
如何将权限设置/保存为位掩码值?
获取位掩码值并根据位值为每个数组项返回真/假的示例....