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。

  • 相关阅读:
    Poj_1088_滑雪(DP)
    Poj_1088_滑雪(DP)
    Poj_1011_Sticks(剪枝)
    Poj_1011_Sticks(剪枝)
    Poj_1068 Parencodings
    Poj_1068 Parencodings
    Poj_1005_I Think I Need A HouseBoat
    Poj_1005_I Think I Need A HouseBoat
    Poj_1004_FinancialManagement
    git分支管理
  • 原文地址:https://www.cnblogs.com/dengshiwei/p/4258414.html
Copyright © 2011-2022 走看看