zoukankan      html  css  js  c++  java
  • 课堂练习

    1.阅读示例: EnumTest.java,运行它,分析运行结果? 你能得到什么结论?你掌握了枚举类型的基本用法了吗?

    枚举类型是引用类型。枚举不属于原始数据类型,它的每个具体值都   引用一个特定的对象。相同的值则引用同一个对象。可以使用“==”   和equals()方法直接比对枚举变量的值,换句话说,对于枚举类型的   变量,“==”和equals()方法执行的结果是等价的。

    2.阅读相应教材,或者使用互联网搜索引擎,弄清楚反码、补码跟原 码这几个概念,然后编写示例程序,对正数、负数进行各种位操作,观察输出结果,与手工计算的结果进行比对,看看Java中的数是采用上述哪种码表示的。

    原码:一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。

    反码:对于正数,它的反码表示与原码相同;对于负数,是其原码逐位取反,但符号位除外。

    补码:对于正数,于原码相同;对于负数,则是反码加1。

    java用的是补码。

    3.

    结果为2。

    Java变量遵循“同名变量的屏蔽原则”,请课后阅读相关资料弄清楚相关知识,然后自己编写一些测试代码,就象本示例一样,有意识地在不同地方定义一些同名变量,看看输出的到底是哪个值。

    输出的主函数的值。

     4.请运行一下代码

    你看到了什么样的输出,意外吗?

    使用double类型的数值进行计算, 其结果是不精确的。

    5.为什么double类型的数值进行运算得不到“数学上精确”的结果?

    因为java中十进制与二进制转化时存在问题,double类型的数值占   用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低   位上一定会与实际数据存在误差,简单来说就是我们给出的数值,在   大多数情况下需要比64bit更多的位数才能准确表示出来(甚至是需   要无穷多位),而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。

    6.

    以下代码的输出结果是什么? int X=100; int Y=200; System.out.println("X+Y="+X+Y); System.out.println(X+Y+"=X+Y"); 为什么会有这样的输出结果?

    x+y=100200

    300=x+y

    两个加号的意义不同一个是连接一个是运算。

  • 相关阅读:
    poj3180 The Cow Prom
    洛谷P1434 滑雪
    洛谷P1199 三国游戏
    洛谷P1230 智力大冲浪
    洛谷P1012 拼数
    洛谷P1106 删数问题
    bzoj3538 [Usaco2014 Open]Dueling GPS
    Android(java)学习笔记134:Android数据存储5种方式总结
    Android(java)学习笔记133:Eclipse中的控制台不停报错Can't bind to local 8700 for debugger
    Android(java)学习笔记132:eclipse 导入项目是提示:某些项目因位于工作空间目录中而被隐藏。
  • 原文地址:https://www.cnblogs.com/shenghuizhang/p/5937427.html
Copyright © 2011-2022 走看看