当前位置: 首页 > 知识库问答 >
问题:

这个布尔值“(数字&1)==0”是什么意思?

应翰飞
2023-03-14
private static boolean isEven(int number)
{
    return (number & 1) == 0;
}

编辑:我可能应该补充一点,代码确实有效,以防有人想知道。

共有1个答案

尉迟鑫鹏
2023-03-14

请记住,“&”是按位运算。你可能知道这一点,但根据你提出问题的方式,我不完全清楚。

也就是说,理论上的想法是,你有一些int,可以用一些1s和0s的级数来表示。例如:

...10110110

在二进制中,因为它是以2为基数的,所以每当按位的数字以0结尾时,它就是偶数,当它以1结尾时,它就是奇数。

因此,对于上面的操作,用1执行按位&是:

...10110110 & ...00000001

当然,这是0,所以你可以说原始输入是偶数。

或者,考虑一个奇数。例如,在上面的基础上添加1。然后

...10110111 & ...00000001
 类似资料:
  • 在CodeReview上,我发布了一段工作代码,并要求提供改进它的技巧。我得到的一个方法是使用布尔方法检查ArrayList是否有偶数个索引(这是必需的)。这是建议的守则: 因为我已经缠着那个特定的用户寻求了很多帮助,所以我决定是时候缠着SO社区了!我真的不明白这是怎么回事。调用该方法并将ArrayList的大小作为参数(即ArrayList有十个元素,编号=10)。 我知道一个单独的同时运行数字

  • 问题内容: 在CodeReview上,我发布了一段有效的代码,并要求改进的技巧。我得到的是使用一种布尔方法来检查ArrayList是否具有偶数个索引(这是必需的)。这是建议的代码: 因为我已经困扰了该特定用户很多帮助,所以我决定是时候该困扰SO社区了!我真的不明白这是如何工作的。调用该方法,并以ArrayList的大小作为参数(即ArrayList有十个元素,数字= 10)。 我知道有一个数字与1

  • 当我跑的时候 我在Java中得到错误。为什么?这相当于false==false,这是真的。这不是Java特有的,我在其他语言中也得到了相同的结果。这是因为短路评估吗?似乎左右双方仍会/应该进行比较。

  • 问题内容: login 我已经看过很多次了,但是我不知道那是什么意思。 问题答案: 运算符计算给定表达式,然后返回。 操作者经常被用来仅获取原始值,通常使用“ ”(这是相当于“ ”)。在这些情况下, 可以改用全局变量(假设尚未将其分配给非默认值)。 这里提供了一个解释:operator。 您想要通过链接执行此操作的原因是,通常,URL会将浏览器重定向到评估该JavaScript结果的纯文本版本。但

  • 我运行了几个测试场景,其中我从SOAP客户端调用远程系统的SOA服务,并遇到了各种远程异常。你能帮我确定每个错误意味着什么吗- 1) java.net网站。ConnectException:连接被拒绝“ 2)Java . net . socket time out异常:连接超时" 3) 连接异常: 连接超时”