课堂阅读中的示例代码具有以下代码:
// 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& A的所有结果。 B; & =结果只有两者都存在。
我做对了吗?让我想起几乎完成2的补充。
至于为什么我列出了编译器设计,这个类是高级编程语言,该方法来自基于Java的C语言词法分析器。我们现在正在编写和解释。
答案 0 :(得分:1)
按位&运算符执行按位AND运算。
bitwise ^运算符执行按位异或运算。
按位|运算符执行按位包含OR运算。
据我所知,| =结果将包含所有的结果 A& A B;
是。如果A或B中的任何一个对于特定位具有1,或者如果两者都具有1,则结果位为1.
& =结果只包含两者中的结果。
再次,是的。只有当A和B的位都有1时,结果位才为1;否则0。