• Java基础笔记(五)——数据类型转换


    数据类型的精度由低到高为:byte < short < char < int < long < float < double

    低精度的类型与高精度的类型在进行运算时,低会自动转换为高,而如果非要把结果转为低精度的类型,需要进行强制转换。(犹如小杯里的水倒入大杯子里,可以;但是大杯里的水想要倒入小杯里可能会溢出,那高精度的同理可能会出现精度丢失。)

    (1)byte、short、char型参与运算时,低于int型都会自动转换为int型(使用“+=”运算符除外),然后对int型的值进行计算,得到的结果也为int型。这些类型的变量与高于int类型(如:long、float、double)的变量一起运算时,会自动转换为高精度的类型。其中char类型的数据会转换为对应的ASCII码。

    举个不常规,但掌握语法的例子:

    byte b1=1;
    long b2=3;
    float b3=b1+b2;//此时b3=4.0 首先b1+b2的结果为long型,赋值给b3时自动转换为float

    byte型示例:

    1.

    byte b1=1,b2=2;
    int b=b1+b2; //如果把两个byte型的值相加,得到的结果是int

    2.

    byte b1=1,b2=2;
    b1=(byte)(b1+b2); //如果要得到byte型的结果,需强转为byte[注意转换的是结果,不要忘记给b1+b2加括号]

    3.

    short a=128;   // a=128
    byte b=(byte)a; // b=-128

    short类型占2个字节,a对应的二进制为:00000000 10000000,由于byte占1个字节,在强制转换为byte时只能存下低字节部分:10000000,10000000是-128的补码,所以b为-128。

    short型示例:

    1.

    short s1=1,s2=2;
    s1=s1+s2; //编译错误,如果把两个short型的值相加,得到的结果是int

    改正:

    short s1=1,s2=2;
    s1=(short)(s1+s2); //如果要得到short型的结果,需强转为short

    3.

    short s1=1;
    s1=s1+1; //编译错误,s1会转换为int型,结果也为int型,而s1定义类型为short

    改正:

    short s1=1;
    s1=(short)(s1+1);

    例外情况:

    “+=”运算符,不会产生类型的转换,Java编译器会对其进行特殊处理。

    short s1=1;
    s1+=1; //能够编译通过

    char型示例:

    char c1='a',c2='b';
    int c=c1+c2; //得到的结果是int
    c1=(char)(c1+c2); //得到的结果是int型,如果想得c1为字符,需要char强制转换

    (2)boolean类型不与其它类型转换,其值只有true和false,注意不像C语言可以为0或非0代表真或假。

    示例:

    int i=1;
    if(i)
    System.out.println("true");
    else
    System.out.println("false");

    编译错误,if条件只能是boolean类型的值(true或false),而 i 的类型为 int。

    (3)整型字面值默认为int型,若用long型定义,需要在字面值末尾加l或L。

    如:long l=5543876532345678653L;   或  long l=5543876532345678653l;

    浮点型字面值默认为double型,若用float型定义,需进行类型转换。

    float型变量初始化这三种形式均可:1.float f=1.0f; 2.float f=1.0F;  3.float f=(float)1.0;




  • 相关阅读:
    javascript获取xml节点的最大值
    iis 不能浏览aspx页面
    批量替换文件夹里面的文本文件的指定字符
    select update delete
    SQL IAM的理解
    数据库的页构成
    sqltype IsDBNull
    MSSQL优化教程之1.4 其他几种类型的页面
    SqlDataAdapter
    行状态,行版本
  • 原文地址:https://www.cnblogs.com/tendo/p/10327214.html
Copyright © 2020-2023  润新知