[声明]所有代码均来自Joshua Bloch和Neal Gafter所著的<Java解惑>一书,本人仅因学习需要摘抄和注释,感谢二位作者的知识分享.
代码:
public class Oddity {
public static boolean isOdd(int i) {
return i % 2 == 1;
}
public static void main(String[] args) {
int i = 4;
System.out.println("Question: " + i + " is odd ? ");
System.out.println("Answer: " + isOdd(i));
}
}
结果:
Question: 4 is odd ?
Answer: false
分析:
结果竟然说4不是偶数?
取模运算当返回值为0时说明被整除
所以 偶数 % 2 = 0
取模运算当返回值非零时,它与左操作数具有相同的正负符号
所以 正奇数 % 2 = 1
负奇数 % 2 = -1
所以通过取模运算判断奇数时可以改成用 i % 2 != 0 来判断.
现在换一种思路来思考,所有的奇数的二进制最后一位必然为1,偶数的为0.
所以我们用1和参数进行按位与运算时,参数为奇数时与运算的结果为1,参数为偶数时与运算的结果为0
例如: 4 & 1 7 & 1
0100 0111
&0001 &0001
结果: 0000(0) 0001(1)
解决方案代码:
public class Oddity {
public static boolean isOdd(int i){
return (i & 1) == 0;
}
public static void main(String[] args) {
int i = 4;
System.out.println("Question: " + i + " is odd ? ");
System.out.println("Answer: " + isOdd(i));
}
}
结果:
Question: 4 is odd ?
Answer: true
分享到:
相关推荐
### Java解惑——语法细节介绍 #### 概述 Java作为一种广泛应用的编程语言,拥有庞大的用户群体和丰富的应用场景。在日常开发过程中,我们往往会遇到一些容易忽视却又十分重要的语法细节。这些细节虽然不起眼,但...
主要受制于减费让利政策的影响以及去年同期基数较高的双重压力。尽管如此,紫金银行还是通过控制成本,特别是有效管理存款成本,实现了净息差的下滑幅度相对有限,维持在1.81%的水平,仅比2020年全年下降了10个基点...
1. 用户入口广泛:微信用户基数庞大,通过微信内置的入口可以轻松访问小程序,降低用户获取成本。 2. 轻量化体验:小程序体积小,加载速度快,使得用户能够在短时间内完成学习任务,提高学习效率。 3. 无缝连接社交...
1. 便捷性:用户只需在微信内搜索或扫描二维码即可打开小程序,使用完毕后自动关闭,不占用手机桌面空间。 2. 轻量化:小程序体积小,加载速度快,相比传统APP,更节省用户流量和存储空间。 3. 全面接入:微信庞大的...
例如,实例1指出,基因的碱基总数小于DNA分子的总碱基数,这表明基因并非连续分布在DNA上,而是由特定的碱基序列间隔开来。实例2和3进一步强调了基因的这种特性,即基因是DNA的一部分,但并不是所有DNA片段都有遗传...
在数字化浪潮下,在线教育平台凭借其便利性、灵活性和资源共享的优势,逐渐成为考研培训的新势力。许多教育机构通过线上课程、直播讲解、互动答疑等方式,打破了地域限制,使得优质的教育资源能够更广泛地覆盖到考生...
我国的网络教学尚处于初步发展阶段,尤其是在计算机教育领域,虽然网民基数庞大,但相比于西方发达国家而言,网络普及率相对较低,这在一定程度上制约了计算机教育的发展。目前,网络教学模式主要作用于资源共享层面...
报告中提到在社保领域的稽核工作中,工作人员通过严谨的工作方法,对参保单位的缴费基数和人数进行核查,确保了社保基金的合理征收。这种细致入微的工作态度,不仅体现了个人对工作的高度负责,也反映出整个团队的...