9.15 课后作业2

public class file {
    private enum MyEnum{
        ONE, TWO, THREE;}
        public static void main(String[] args) {
        for(MyEnum value:MyEnum.values()){
            System.out.println(value);
        }
    }
}

运行结果是

ONE
TWO
THREE

value方法是用于获取枚举类型中所有枚举常量的数组,它是一个自动生成的方法。

MyEnum.values()调用value方法,返回一个包含枚举常量的MyEnum数组,然后增强for循环遍历数组打印输出

原码反码补码是计算机存储一个具体数字的编码方式。java虚拟机中整数有byte、short、int、long四种 分别表示 8位、16位、32位、64位有符号整数。整数用补码表示

第一位表示符号位,其余位表示值

正数的反码跟原码相等

反码是原码在符号位不变的基础上,其余各位取反

在计算机中,利用补码的方式进行运算,就可以解决直接用原码来计算得到的结果是错误的问题,也解决了减法的问题。

 

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

字符串表示文本,数字表示类型

当一个字符串与一个数字相加时,Java会自动将数字转换为字符串,然后进行拼接。

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));

运行结果是

0.05 + 0.01 = 0.060000000000000005
1.0 - 0.42 = 0.5800000000000001
4.015 * 100 = 401.49999999999994
123.3 / 100 = 1.2329999999999999

结论使用double类型的数值进行计算, 其结果是不精确的。Double类型的数值占用64bit,即64个二进制数,除去最高位表示正负符号的位,在最低位上一定会与实际数据存在误差,简单地说就是我们给出的数值,在大多数情况下需要比64bit更多的位数才能准确表示出来,而double类型的数值只有64bit,后面舍去的位数一定会带来误差,无法得到“数学上精确”的结果。

posted @ 2023-09-15 11:42  酥饼馅红豆沙  阅读(2)  评论(0编辑  收藏  举报