gpt4 book ai didi

java - 检查我是否理解基本的 Java 位运算

转载 作者:行者123 更新时间:2023-11-30 07:03:34 24 4
gpt4 key购买 nike

类阅读中的示例代码包含以下代码:

// adjustSpacing will set bits in the spacing word to indicate the
// type of spacing adjustment to be done, LEADING OR TRAILING.

public void adjustSpacing(int spacingValue)
{
spacing |= spacingValue;
}

我以前从未使用过按位运算符,因为我从来不需要它们。我查了一下如何进行操作,它们看起来非常简单,但我想检查一下我是否确实拥有它。

采取

A = 1010 1000

B = 0111 0111

A |= B -> 1111 1111

A &= B -> 0010 0000

据我所知, |= 结果将包含 A 和 B 中的所有结果;&= 结果将仅包含两者中都存在的结果。

我说得对吗?让我想起做 2 的补码,差不多。

至于为什么我列出了编译器设计,这个类是高级编程语言,并且该方法来自于基于java的C语言词法分析器。我们现在正在讨论编译和解释。

最佳答案

按位&运算符执行按位AND运算。

按位 ^ 运算符执行按位异或运算。

按位|运算符执行按位或运算。

From what I can tell, the |= result will have all of the ones from both A & B;

是的。如果 A 或 B 中的某个特定位为 1,或者两者都为 1,则结果位为 1。

the &= result will have only the ones present in both.

再说一遍,是的。仅当 A 和 B 的位均为 1 时,结果位才为 1;否则为 0。

关于java - 检查我是否理解基本的 Java 位运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40492487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com