• Java各个类型变量边界


    转自:http://blog.sina.com.cn/s/blog_5eab3d430101fdv6.html ,

             http://www.360doc.com/content/10/0915/10/2795334_53771845.shtml       十分感谢博主!

    代码片段:

    byte bmax, bmin;

    short shmax, shmin;

    char cmax, cmin;

    int imax, imin;

    long lmax,lmin;

    float fmax,fmin;

    double dmax,dmin;

    fmax = Float.MAX_VALUE;

    fmin = Float.MIN_VALUE;

    dmax = Double.MAX_VALUE;

    dmin = Double.MIN_VALUE;

    bmax = Byte.MAX_VALUE;

    bmin = Byte.MIN_VALUE;

    cmax = Character.MAX_VALUE;

    cmin = Character.MIN_VALUE;

    shmax = Short.MAX_VALUE;

    shmin = Short.MIN_VALUE;

    imax = Integer.MAX_VALUE;

    imin = Integer.MIN_VALUE;

    lmax = Long.MAX_VALUE;

    lmin = Long.MIN_VALUE;

    System.out.println("float max="+fmax);

    System.out.println("float min="+fmin);

    System.out.println("double max="+dmax);

    System.out.println("double max="+dmin);

    System.out.println("byte max="+bmax);

    System.out.println("byte min="+bmin);

    System.out.println("char max="+cmax);

    System.out.println("char min="+cmin);

    System.out.println("short max="+shmax);

    System.out.println("short min="+shmin);

    System.out.println("int max="+imax);

    System.out.println("int min="+imin);

    System.out.println("long max="+lmax);

    System.out.println("long min="+lmin);

    输出:

    float max=3.4028235E38

    float min=1.4E-45

    double max=1.7976931348623157E308

    double max=4.9E-324

    byte max=127

    byte min=-128

    char max=?

    char min=

    short max=32767

    short min=-32768

    int max=2147483647

    int min=-2147483648

    long max=9223372036854775807

    long min=-9223372036854775808

    说明:

    实际上是每种类型的Container类定义的常量。

    简单数据类型之间的转换

        在Java中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)--int--long--float--double
     简单数据类型之间的转换又可以分为:
      ●低级到高级的自动类型转换
      ●高级到低级的强制类型转换
      ●包装类过渡类型能够转换

    低级变量可以直接转换为高级变量,笔者称之为自动类型转换,例如,下面的语句可以在Java中直接通过:
        byte b;
        int i=b;
        long l=b;
        float f=b;
        double d=b;

    如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如r
        char c='c';
        int i=c;
        System.out.println("output:" i);
    输出:output:99;


    对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
        short i=99;

        char c=(char)i;

        System.out.println("output:" c);
    输出:output:c;


    但根据笔者的经验,byte,short,int三种类型都是整型,因此如果操作整型数据时,最好统一使用int型。

    将高级变量转换为低级变量时,情况会复杂一些,你可以使用强制类型转换。即你必须采用下面这种语句格式:
        int i=99;

        byte b=(byte)i;

        char c=(char)i;

        float f=(float)i;
    可以想象,这种转换肯定可能会导致溢出或精度的下降,因此笔者并不推荐使用这种转换。

    态度决定行为,行为决定习惯,习惯决定性格,性格决定命运
  • 相关阅读:
    hdu7047 /2021“MINIEYE杯”中国大学生算法设计超级联赛(7) 1004 Link with Balls
    hdu7115 Vertex Deletion
    CF1552B B. Running for Gold
    hdu7055 /2021“MINIEYE杯”中国大学生算法设计超级联赛(7) 1012 Yiwen with Sqc
    hdu7050 /2021“MINIEYE杯”中国大学生算法设计超级联赛(7) 1007 Link with Limit
    CF 1560E E. Polycarp and String Transformation(思维)
    CF 1542C C. Strange Function
    STL 算法 std::distance
    STL 算法 std::accumulate
    std::get<C++11多线程库~线程管理>(08):转移线程所有权(2)
  • 原文地址:https://www.cnblogs.com/neversayno/p/5052829.html
Copyright © 2020-2023  润新知