作业整理

1.EnumTest.java的分析

源代码

public class EnumTest {

    public static void main(String[] args) {
        Size s=Size.SMALL;
        Size t=Size.LARGE;
        //s和t引用同一个对象?
        System.out.println(s==t);  //
        //是原始数据类型吗?
        System.out.println(s.getClass().isPrimitive());
        //从字符串中转换
        Size u=Size.valueOf("SMALL");
        System.out.println(s==u);  //true
        //列出它的所有值
        for(Size value:Size.values()){
            System.out.println(value);
        }
    }

}
 enum Size{SMALL,MEDIUM,LARGE};

技术分享s和t没有引用同一个对象,变量只有一个值。

 

2.反码、补码跟原 码的基本概念

所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
原码10010= 反码11101 (10010,1为符号码,故为负)
(11101) 二进制= -2 十进制
补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

 

3.TestDouble.java

源代码

public class TestDouble {

    public static void main(String args[]) {
        System.out.println("0.05 + 0.01 = " + (0.05 + 0.01));
        System.out.println("1.0 - 0.42 = " + (1.0 - 0.42));
        System.out.println("4.015 * 100 = " + (4.015 * 100));
        System.out.println("123.3 / 100 = " + (123.3 / 100));
    }
}

 

 

 

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

    计算机只能识别二进制,一切的数据最后都要转换为二进制。例如源程序中的2.4是十进制的,要转换为二进制,但2.4的二进制不是精确的2.4,只是接近4.4,实为2.3999999999999999,浮点数由两部分组成:指数和 尾数,在进行浮点数的二进制与十进制的转换时,浮点数参与了计算,那么转换的过程就会变得不可预测,并且变得不可逆。

 

5.X+Y

结果:

X+Y=100200
300=X+Y

原因:

语句1为字符串的连接,其中的“+”为连接运算,输出字符串“X+Y=”与X(100)与Y(200);

语句2为数字相加,其中的第一个“+”为相加运算,第二个“+”为连接运算。

 

6.加减乘除

import javax.swing.JOptionPane;  // import class JOptionPane

public class Addition {
   public static void main( String args[] )
   {
      String firstNumber,   // first string entered by user
             secondNumber;  // second string entered by user
      int number1,          // first number to add
          number2,          // second number to add
          sum,              // sum of number1 and number2
          jian,
          cheng,
          chu;
      // read in first number from user as a string
      firstNumber =
         JOptionPane.showInputDialog( "Enter first integer" );

      // read in second number from user as a string
      secondNumber =
         JOptionPane.showInputDialog( "Enter second integer" );

      // convert numbers from type String to type int
      number1 = Integer.parseInt( firstNumber ); 
      number2 = Integer.parseInt( secondNumber );

      // add the numbers
      sum = number1 + number2;
      jian=number1 - number2;
      cheng=number1 * number2;
      chu=number1 / number2;
      // display the results
      JOptionPane.showMessageDialog(
         null, "相加为 " + sum, "Results",
         JOptionPane.PLAIN_MESSAGE );
      
      JOptionPane.showMessageDialog(
              null, "相减为 " + jian, "Results",
          JOptionPane.PLAIN_MESSAGE );

      JOptionPane.showMessageDialog(
              null, "相乘为 " + cheng, "Results",
          JOptionPane.PLAIN_MESSAGE );
      
      JOptionPane.showMessageDialog(
              null, "相除为 " + chu, "Results",
          JOptionPane.PLAIN_MESSAGE );

      System.exit( 0 );   // terminate the program
   }
}

posted @ 2015-10-07 20:04  wzflbc  阅读(147)  评论(0编辑  收藏  举报