`
JiongBull
  • 浏览: 8330 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

解惑1:基数性

 
阅读更多

[声明]所有代码均来自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解惑——语法细节介绍 #### 概述 Java作为一种广泛应用的编程语言,拥有庞大的用户群体和丰富的应用场景。在日常开发过程中,我们往往会遇到一些容易忽视却又十分重要的语法细节。这些细节虽然不起眼,但...

    20210828-广发证券-紫金银行-601860-业绩承压,静待转型.pdf

    主要受制于减费让利政策的影响以及去年同期基数较高的双重压力。尽管如此,紫金银行还是通过控制成本,特别是有效管理存款成本,实现了净息差的下滑幅度相对有限,维持在1.81%的水平,仅比2020年全年下降了10个基点...

    基于微信小程序的在线学习平台设计与实现.zip

    1. 用户入口广泛:微信用户基数庞大,通过微信内置的入口可以轻松访问小程序,降低用户获取成本。 2. 轻量化体验:小程序体积小,加载速度快,使得用户能够在短时间内完成学习任务,提高学习效率。 3. 无缝连接社交...

    “互联网+”背景下的微信小程序的应用研究.zip

    1. 便捷性:用户只需在微信内搜索或扫描二维码即可打开小程序,使用完毕后自动关闭,不占用手机桌面空间。 2. 轻量化:小程序体积小,加载速度快,相比传统APP,更节省用户流量和存储空间。 3. 全面接入:微信庞大的...

    2020_2021学年新教材高中生物第3章基因的本质第4节基因通常是有遗传效应的DNA片段课件新人教版必修第二册20210605

    例如,实例1指出,基因的碱基总数小于DNA分子的总碱基数,这表明基因并非连续分布在DNA上,而是由特定的碱基序列间隔开来。实例2和3进一步强调了基因的这种特性,即基因是DNA的一部分,但并不是所有DNA片段都有遗传...

    教育行业研究:341万人,考研日益激烈,培训市场值期待.zip

    在数字化浪潮下,在线教育平台凭借其便利性、灵活性和资源共享的优势,逐渐成为考研培训的新势力。许多教育机构通过线上课程、直播讲解、互动答疑等方式,打破了地域限制,使得优质的教育资源能够更广泛地覆盖到考生...

    浅析网络教学模式的计算机教育改革.docx

    我国的网络教学尚处于初步发展阶段,尤其是在计算机教育领域,虽然网民基数庞大,但相比于西方发达国家而言,网络普及率相对较低,这在一定程度上制约了计算机教育的发展。目前,网络教学模式主要作用于资源共享层面...

    年终的述职报告范文集合十篇.docx

    报告中提到在社保领域的稽核工作中,工作人员通过严谨的工作方法,对参保单位的缴费基数和人数进行核查,确保了社保基金的合理征收。这种细致入微的工作态度,不仅体现了个人对工作的高度负责,也反映出整个团队的...

Global site tag (gtag.js) - Google Analytics