在java中,012表示十进制的10,0x12表示十进制的18浮点数是否可以用八进制、十六进制来表示?另外,下面的代码,第二个输出为啥不是100.0呢?
System.out.println(0x1);
System.out.println(0x1e2);java

解决方案 »

  1.   


    //我说的是JAVA字面量(也就是JAVA直接量),比如整数字面量:
    int i1 = 11;   // 十进制11
    int i2 = 0b11; // 二进制11 = 十进制3
    int i3 = 011;  // 八进制11 = 十进制9
    int i4 = 0x11; // 十六进制11 = 十进制17// 而对于浮点数,只能用十进制表示吗?
    float f = 3.14f;
    double d = 3.14;  在java中,对于浮点数字面量(也就是右边的3.14),只能用十进制表示吗?
      

  2.   

    大哥,你要的是不是
    System.out.println(1e2);
    啊这个又不是什么十六进制。科学计数法...
      

  3.   

    1、可以
    2、System.out.println(1e2);和System.out.println(0x1e2);是有区别的,第一个是科学计数法 结果是100
       而第二个是十六进制的数字 ,不再是科学计数法了 结果是 1*16*16+14*16+2=482  
       十六进制中 a代表10,b代表11。。e代表14
      

  4.   


    谢谢,第二个问题解决
    关于第一个问题,能给出直接量吗?我这边试不出来: System.out.println(03.14f);// 这两个是不行的
    System.out.println(0x3.14f);