问题标签 [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 投票
1 回答
872 浏览

java - 了解按位条件检查以获取数组中所有可能的组合总和

我有一个算法,其目标是在一个整数数组中给出所有组合的所有可能总和。

我无法理解使用按位 AND 添加的内部 if 条件。内部 if 循环的目标是什么。

0 投票
2 回答
122 浏览

c++ - 这里到底发生了什么?

这需要一个 char, c 并打印出它的二进制文件。这是如何工作的,特别是第二行。

0 投票
3 回答
503 浏览

c++ - C ++:将按位与的结果分配给布尔

我在 C++ 中有以下循环,用 g++ 4.1.2 编译:

注意 logStatus() 是按值接收其参数的,所以参数不会被修改。m_firstOk 和 m_secondOk 当然是 bool 成员属性。

到目前为止,这一切都很好。我收到了一份报告,它没有检测到 firstOk 何时更改。我使用 gdb 附加到正在运行的进程。它在 sleep() 行中,当我看到以下内容时我感到很惊讶:

怎么回事?当 firstOk 应该是按位与 0x1 的结果时,它怎么可能是 244?我知道一个布尔值实际上存储为一个整数,但我的按位 AND 怎么能被忽略呢?由于它是 244,当它应该为假时,它被评估为真,这就是问题的原因。

不是将按位与的结果分配给布尔安全吗?这是一个 gcc 错误吗?或者我应该做如下的事情?

提前致谢。

0 投票
1 回答
686 浏览

bit-manipulation - (Bitwise Logic) What does AND'ing something with 0x7F accomplish?

I'm trying to understand a program that I have disassembled. I'm understanding it so far.

However, I do not understand why the program is AND'ing an integer with 0x7F. It also likes to AND an integer with 0xFF. The program is somewhat of a random number generator.

What does this accomplish?

I think AND'ing with 0xFF takes the lower byte (of a register) and discards the rest?

Specifically in MIPS ASM:

0 投票
8 回答
7901 浏览

c++ - 正数和负数的按位和(&)的含义?

谁能帮忙是什么n&-n意思??以及它的意义是什么。

0 投票
3 回答
216 浏览

javascript - javascript中的按位&未返回预期结果

我正在用 javascript 处理 BitWise AND 运算符。

我有两个 32 位数字

当我和他们按位 计算时,4294901760 & 4294967040我得到了 -65536 虽然结果应该是4294901760.

任何人都可以指导我我错过了什么吗?或者什么是正确的方法。谢谢

0 投票
2 回答
237 浏览

javascript - 针对奇数进行测试

大多数情况下,模运算符%用于测试偶数或奇数。

现在我的问题是,使用按位与对奇数进行测试是否有任何问题,因为它感觉更自然地测试最右边的位是否10进行模检查2

并且作为 32 位转换不改变最右边的位。

两个都

(1 + Math.pow(2,52)) & 1 //1

(1 + Math.pow(2,52)) % 2 //1

产生相同的结果。

是否有理由更喜欢模运算符而不是按位?

编辑:这个问题只考虑在 64 位精度范围内的值,因为只有偶数可以精确表示在 2^53 以上,因此两个操作数都失败(9007199254740993 % 2 //0)

0 投票
4 回答
370 浏览

c - 如何仅使用 ~ 和 | 在 c 中进行按位与运算

我需要使用~和创建一个函数|,这样该函数f(6, 5)4作为答案返回。

0 投票
1 回答
130 浏览

c - 不同宽度数据类型上的移位运算符的安全性

位运算符从来都不是我的强项。我想知道在使用位移时何时需要显式强制转换。

例如,只要是无符号整数类型,例如、等,就i&1 == i%2保证为真?我认为问题是in是否被隐式转换为 width 类型。icharunsigneduint64_t1i&1sizeof(i)

作为第二个示例,如果我执行 a i = 1<<myshift,我是否需要首先将 显式1转换为足够宽以存储移位结果的数据类型,例如:i = (uint64_t)1<<myshift

第二个示例中的类型是否myshift无关紧要,只要它是无符号的?


我认为这些问题的答案是肯定的,肯定的,肯定的。特别是第二个例子可以快速检查。但是有人对这些东西有很好的参考吗?来自 C 标准的链接/引用将非常有帮助。

0 投票
1 回答
211 浏览

c# - 在 C# 中缓慢的 ulong 按位与

我正在尝试优化我的国际象棋程序。我正在使用ulong位板来生成合法动作,因为我认为它会非常快。然而,Profiler 表明大部分时间都花在了按位与运算上(超过 20% 的包含样本,如下所示;分析执行了多次,结果相同)。

分析代码经过 x64 优化,在 VMWare Player(Windows 7 客户机,Debian 主机)上运行。我无法让 Mono Profiler 工作以查看它是否产生相同的结果,但在 Linux 上本地执行的 Mono 运行代码的时间与 VMWare 上的 .Net 框架完全相同。

下面显示的报告可能是正确的,操作确实那么重,是我误解了它,还是分析器不准确?

分析结果