zoukankan      html  css  js  c++  java
  • 一些基本数据类型问题

    Java中,

    byte b1=0; 正确

    byte b2=127; 正确

    short s1=b1+b2;为什么会报错呢

    java中默认的整数为int类型,浮点为double类型,但是定义赋值的时候针对float
    都是整型参与的运算都要首先自动转换int再参与运算(除非有long类型参与则都转成long或者有浮点型参与运算则转成浮点型再参与运算),你这里s1=b1+b2,b1和b2首先自动转成int,再做+运算,再赋值给s1,这时就是int型赋值给short,大的赋值给小的不加强制转换就会报错。
     
    1,隐性转换一般都是放宽转换(如byte到int,int到long等,都是小的赋给大的。)
    但是却有一个例外就是,在赋值转换中,
     隐性转换也包含了缩窄基本转换。
    就是从int到byte,char,short的转换:
     比如:
    byte b=1;//合法
    byte b=128; //非法
    char和short都是同理的。
    右边必须为int型字面常量,而且值必须能被左边类型表示
     
    2,单纯是都是整型数据参与的运算都要转换为int类型,除非非有long类型参与运算则转换为long,或者有浮点类型参与运算的话都转成浮点类型。
           单纯的浮点类型float类型参与运算不用转成double,除非有double类型参与运算才转成double。

  • 相关阅读:
    python 错误之SyntaxError: Missing parentheses in call to 'print'
    C语言之指针
    list中的insert语句
    RSA算法加解密
    关于jQuery
    JDBC连接数据库并将resultset中的文件输出为excel
    下载文件的写法
    随机生成订单号
    如何根据选项来动态的添加自己所需要的表单
    搞笑语句集锦
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258414.html
Copyright © 2011-2022 走看看