zoukankan      html  css  js  c++  java
  • 类型转换规则

    类型转换规则

    在Java语言中,当参与运算的两个变量的数据类型不同时,就需要进行隐式的数据类型转换,转换的规则是:从低精度向高精度转换即优先级满足:

    byte < short < char < int < long < float < double  
    

    例如,不同数据类型的值进行运算时,short 类型数据能够自动转换为 int 类型, int 类型数据能够自动转换为 float 类型等。反之,则需要通过强制类型装换来实现。

    类型自动转换

    操作数1的类型 操作数2的类型 转换后的类型
    long byte short char int long
    int byte short char int
    float byte short char int long float
    double byte short char int float double

    当类型自动转换时,需要注意以下几点:

    1. char类型的数据转换为高级类型,会转换为其对应的ASCII码。
    2. byte char short 类型的数据在参与运算时会自动转换为int型,但当使用“+=”运算时,就不会产生类型的转换。
    3. 基本数据类型与boolean类型是不能相互转换的

    强制类型转换

    操作数1的类型 操作数2的类型
    byte char
    char byte char
    short byte char
    int byte short char
    long byte short char int
    float byte short char int long
    double byte short char int float double
    short a = 128;
    byte b = (byte)a;
    

    a = 128,b = -128。short类型变量占两个字节,a对应的二进制为:0000000010000000,由于byte只占一个字节,在强制转换为byte的时候只截取低字节:10000000,10000000是-128的补码,因此b的值为-128。

    Java余元在设计byte、short和char类型的运算时,首先会把这些类型的变量值强制转换为int类型,然后对int类型的值进行计算,最后得到的值也是int类型。
    如果把两个byte值相加最后会得到一个int类型的值,如果想得到short类型的结果,必须要显示转换为short类型。

    short s1 =1;
    s1 = s1+1;//这句编译器会报错
    s1 = (short) (s1+1);//这句是正确的
    s1 +=1;//这句java编译器会对其进行特殊处理,可以编译通过。 
    
  • 相关阅读:
    30 tcp编码, udp编码 pycharm输出带颜色, tcp实现的聊天室
    29 网络相关知识 socket
    c++ 程序
    solr 5.4安装
    Linux之ss
    filezilla 证书使用
    mongodb安装,使用
    wireshark抓包发现1506字节包
    python之模块的显要属性
    正则表达式之去除空行
  • 原文地址:https://www.cnblogs.com/luanpeng/p/6654865.html
Copyright © 2011-2022 走看看