问题标签 [bitwise-and]

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

c - 在 C 中屏蔽和提取位

我一直在看有关掩码的帖子,但仍然不知道如何从 C 中的数字中提取某些位。

说如果我们有一个int number 0001 1010 0100 1011,那么它的十六进制表示是对的x1a4b吗?如果我想知道第 5 到第 7 个数字,101在这种情况下,我应该使用int mask= 0x0000 1110 0000 0000, int extract = mask&number吗?

另外我如何检查它是否是101?我想==不会在这里工作......非常感谢!

0 投票
1 回答
2365 浏览

c - 缓存中的位掩码

在 CI 中,我试图将一个整数地址值分成标记位和具有 4 个集合的直接映射缓存中的集合索引位。我这样做是为了比较正确缓存集中的行中的正确标签。这里以地址参数为例:

  • 设置索引位数 s=2
  • 偏移位数 b=3
  • 地址位数 m=8

在我的示例中,地址整数是 40 -- int address = 40。

  • 二进制的 40 是 00101000
  • 设置索引应为 01 = 1
  • 标签应该是 001 = 1

取而代之的是标签,我得到 2 并且集索引是 8,这一定是错误的,因为我的缓存中只有 4 集。

这是我的做法,我对地址进行位掩码以获取标签,这些位是设置索引左侧的位,直到 m=8 位。并且设置的索引位于标记位和偏移位之间,即8位序列中间的01。

  • int tag = ((地址 & ~0 << (s + b)) >> 4)
  • int set = (address & (~(~0 << s) << b))

我知道我一定是错的,但我越是尝试写一个面具,我就越感到困惑,我一定是忘记了什么。我至少认为我得到了正确的标签,因为左边的位应该比中间的位更容易。任何建议或帮助将不胜感激,非常感谢!

0 投票
1 回答
2970 浏览

bit-manipulation - Verilog中的按位“与”寄存器数组

我有一组寄存器/总线和一个定义如下的结果总线。

在哪里

我希望对数组的元素执行 BW 位与运算并将结果分配给寄存器and_result

我尝试按如下方式执行此操作。

但是,当我在 Modelsim 10.1e 中对此进行仿真时,出现以下错误。

错误:(vsim-3601)在时间 2 ns 达到迭代限制

如果我不使用生成循环,而是使用always @ (*)块的 BW 实例,则模拟工作正常。

我可以从错误消息中推断出生成 for 循环存在问题,但我无法解决问题。

0 投票
1 回答
43 浏览

mysql - 按位存储我的数据会使搜索结果更快吗

我的 tinyint 字段有 6 个可能的选项,并且对于每次搜索,用户选择哪些选项是可以接受的。目前,我将每个选项简单地存储为值 0 到 6,并在 WHERE 中为每个可接受的选项执行单独的子句。示例(用户选择的选项 0、3 和 4):

我想知道如果将数据存储为 1、2、4、8、16 和 32 是否会更快,并且我执行了按位搜索。

我相信第一个选项通常能够被索引然后更快,但是这个表实际上是43个字段,其中33个是可搜索的,包括各种操作。(查询完成时通常有很多AND。)我不仅需要索引很多字段,而且这不会否定索引的优势吗?

0 投票
1 回答
84 浏览

arrays - 在这个例子中,按位运算符 & 做什么?

此示例来自 MQL4,但这并不重要:

重要的是我不明白按位运算符&在这里告诉我什么。

我知道如果您有 2 个变量并使用它会发生什么,var1 && var2但是在这种情况下使用数组,有人可以帮我吗?

0 投票
1 回答
883 浏览

sql - sql server中的按位和逻辑

我有一个将标志值存储在整数列中的表。(我不是设计者)

我有一个查询,其中一个条件是

标志 & 256==0

上述条件适用于所有第 8 位不为 1 的无符号数

问题是,在 sql server 中,将 int 转换为二进制时,它花费了太多时间,并且查询的性能随着许多其他连接而下降。

有没有办法用简单的条件替换上述条件?

0 投票
1 回答
219 浏览

c - 使用“按位与”时 C 预处理器编译异常

出于调试目的,我在头文件中有以下程序代码。我的意图是在编译期间决定哪些消息应该打印到控制台端口,或者如果程序没有在调试模式下编译,则根本不打印它们。

我在代码中打印消息,例如:

仅当启用 DBG 级别或模块 BLE 调试时才应记录最后一条消息。尽管目前未启用 DBG 级别,但我看到以下日志:

所以

这怎么可能发生?我正在使用 arm-gcc 编译到 cortex-m0 nrf51822 Nordic 芯片。还有一个 dissasambly 片段,但没有看到任何特别之处,只是 if(a&ENABLED) 根本没有编译。

提前致谢。

0 投票
1 回答
231 浏览

java - 在整数之间使用按位与运算符的好处?

我正在查看一些代码,例如:

此方法根据路径返回要调用的调用者。如果maxCallers值为 4,则调用者值应介于 0-3 之间。现在在这里我不明白 do 的用途hash & Integer.MAX_VALUE。我能想到的一个原因是程序员想要一个正数,因为哈希码可以是负数,但我认为我的理解是错误的。有人可以在这里解释按位 AND 运算符的使用。

0 投票
1 回答
3061 浏览

c++ - OpenCV inRange 更改 Mat 类型

我无法摆脱 OpenCV 中的这个错误:

OpenCV 错误:输入参数的大小不匹配(操作既不是“数组运算数组”(其中数组具有相同的大小和类型),也不是“数组运算标量”,也不是“标量运算数组”)

我发现Mat.type();我的所有Mat(img)类型都为 16,但在函数之后inRangeimg3将类型更改为 0。然后我不能使用函数bitwise_and,因为它的类型不同。

如何将其转换为相同的类型?

0 投票
1 回答
231 浏览

c++ - 在 C++ 中比较 & 与 % 的速度

在 C++ 命令中是真的吗

n & 1

% 2?

(其中 n 是 int 类型)

在全球范围内,有什么方法可以比使用 % 运算符更快地找到整数模 2 的余数?提前致谢。