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

php - 位代码“$n & ($n - 1)”有什么作用?

这段代码是什么意思,还有哪些其他方法可以在不使用位移的情况下完成相同的操作?

0 投票
6 回答
675 浏览

c - 如何设置 4 字节长的底部 3 个字节,同时保持顶部字节不变?

相关代码是这样的:

举个例子,“get”宏是这样的:

我使用标志位的高位字节——“inuse”和“can be coalesced”,以及我发现的任何其他字节都是有用的。

现在我已经完成了提供背景信息,正如我在标题中所述,我需要能够将低 3 个字节更改为块的大小。我最初的直觉是按位 AND 标头与大小,因为它会正确对齐,但后来我意识到它也可能覆盖标志字节,因为它会自动添加零,直到它的大小与 long 匹配。我什至不确定您是否可以按位 AND 一个 int 和一个 long。无论如何,非常感谢帮助。

0 投票
8 回答
40115 浏览

c# - 32 位整数的按位与

如何在 C# 中对两个 32 位整数执行按位与运算?

有关的:

最常见的 C# 位运算。

0 投票
2 回答
6212 浏览

java - Java使用按位运算符打印二进制数

嗨,我正在创建一种方法,该方法将获取一个数字并将其与二进制表示一起打印。问题是我的方法为任何正数打印全 0,为任何负数打印全 1

我明白了:这有效:

0 投票
4 回答
324 浏览

c++ - C++ 中的“位与”和左填充

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

如果我调用以下代码:

但是,如果我调用以下代码:

所以我的问题是,这里发生了什么?为什么x & 070计算到xx & 70计算到0?

我的猜测是左侧的额外 0 迫使 60 占用 2 个字节而不是 1。在这种情况下,按位 & 不会如下所示吗?

0 投票
3 回答
452 浏览

php - 按位运算错误?

我正在开发一个有趣的网站,并且我正在尝试实现基于位运算符的目录访问控制。
我已经定义GUEST = 1, GROUP1 = 15 and GROUP2 = 23

如果我比较

但如果我定义GUEST,GROUP1GROUP2:

没有GROUP1问题:

我哪里错了?一些建议?谢谢。


我发现了一些非常奇怪的东西:我的 GUEST、GROUP1 和 GROUP2 在一个 ini 文件中声明,我通过函数 parse_ini_file(self::$fileName, true); 解析该文件。一个班级内。在我解析了文件后,我递归地定义了在 [DEFINE] 部分下定义的键=值(一个简单的技巧)。如果我在那里评论我的 GROUP2=23 定义并在当前脚本 (GROUP2 & GUEST) 中声明它,则返回 1!

0 投票
1 回答
1837 浏览

gcc - 执行按位与(SPARC 汇编)时重定位溢出?

我正在尝试对寄存器执行按位与,作为位掩码以删除最高有效位(从 0 计数时恰好是第 16 位)。但是,当我尝试使用 gcc 编译我的代码时,它给了我以下错误消息:

汇编器消息:19:错误:重定位溢出

我的猜测是,这与我正在应用的位掩码的大小有关,因为当我对两个包含小数字的寄存器执行 AND 时,我不会遇到相同的错误。代码本身看起来像,

如果有人能就如何解决这个问题提供一些见解,将不胜感激。

谢谢,

坏熊猫

0 投票
11 回答
33116 浏览

bitwise-operators - 仅从 OR 和 AND 异或

如果您只有 AND 和 OR 运算,您将如何进行 XOR 位运算?

0 投票
4 回答
1783 浏览

c - 按位与运算符 & 有什么作用?

请帮助解决这个问题并解释逻辑。我不知道 & 运算符在这里是如何工作的。

0 投票
1 回答
170 浏览

objective-c - objC 位相加

在哪里

我期待 <30434644> 0CFD

但得到 <636664> cfd

所以要么 3325 不是正确的开始 val(但我是从 2 个不同的函数派生出来的),要么按位加法是错误的。

提前致谢。