【发布时间】:2010-12-16 00:04:13
【问题描述】:
按位运算符应该移动变量并一点一点地对它们进行操作。在整数、长整数、字符的情况下,这是有道理的。这些变量可以包含由其大小强制执行的所有值范围。
然而,在布尔值的情况下,一个布尔值只能包含两个值。 1 = 真或 0 = 假。但是布尔值的大小没有定义。它可以大到一个字节,也可以小到一点。
那么在布尔值上使用位运算符有什么影响? JVM 是否本质上将其转换为普通的逻辑运算符并继续前进?出于操作的目的,它是否将布尔值视为单个位实体?还是结果与布尔值的大小一起未定义?
【问题讨论】:
-
我认为你不能在布尔值上使用按位运算符。只看数字。肯定~不行,不知道其他运营商怎么样。
-
你可以使用其中的一些,我们刚刚发现了一个 |在我们的遗留代码中使用。我们正在删除它,但此代码已编译并运行。
-
因为一个短路而另一个不是(见 mobrule 的回答),在你改变 |到 ||您可能希望确保后续的布尔表达式没有原始程序员打算始终执行的任何副作用。
标签: java boolean bitwise-operators