zoukankan      html  css  js  c++  java
  • 数据类型转换

    数据类型转换

    数据类型转换

    一、 自动转换

    概念: 取值范围小的类型 自动提升为 取值范围大的类型

    public static void main(String[] args) {

    int i = 1;

    byte b = 2;

    // byte x = b + i; // 报错

    //int类型和byte类型运算,结果是int类型

    int j = b + i;

    System.out.println(j);

    }

    1.1转换原理图解

    byte 类型内存占有1个字节,在和 int 类型运算时会提升为 int 类型 ,自动补充3个字节,因此计算后的结果还是 int 型。

     

    同样道理,当一个 int 类型变量和一个 double 变量运算时, int 类型将会自动提升为 double 类型进行运算。

    1.2转换规则

    1)范围小的类型向范围大的类型提升, byte、short、char 运算时直接提升为 int 。

    byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double

    (2)字节小的向字节大的类型提升

    二、强制转换

    2.1强制类型转换概念

    取值范围大的类型 强制转换成 取值范围小的类型

    2.3转换格式

    数据类型 变量名 = (数据类型)被转数据值;

    1.5 赋值到 int 类型,

    // double类型数据强制转成int类型,直接去掉小数点。

    int i = (int)1.5;

    实例:

    public static void main(String[] args) {

    //short类型变量,内存中2个字节

    short s = 1;

    /*

    出现编译失败

    s和1做运算的时候,1是int类型,s会被提升为int类型

    s+1后的结果是int类型,将结果在赋值会short类型时发生错误

    short内存2个字节,int类型4个字节

    必须将int强制转成short才能完成赋值

    */

    s = s + 1;//编译失败

    s = (short)(s+1);//编译成功

    }

    2.4转换原理图解

     

    2.5注意

    浮点转成整数,直接取消小数点,可能造成数据损失精度。

    int 强制转成 short 砍掉2个字节,可能造成数据丢失。

    // 定义s为short范围内最大值

    short s = 32767;

    // 运算后,强制转换,砍掉2个字节后会出现不确定的结果

    s = (short)(s + 10);

    二、 ASCII编码表

    在计算机的内部都是二进制的0、1数据,如何让计算机可以直接识别人类文字的问题呢?就产生出了编码表的概念。

    编码表 :就是将人类的文字和一个十进制数进行对应起来组成一张表格。

    字符

    数值

    0

    48

    9

    57

    A

    65

    Z

    90

    a

    97

    z

    122

    public static void main(String[] args) {

    //字符类型变量

    char c = 'a';

    int i = 1;

    //字符类型和int类型计算

    System.out.println(c+i);//输出结果是98

    }

    char类型和int类型计算的过程中,char类型的字符先查询编码表,得到97,再和1求和,结果为98。char类型提升 为了int类型。char类型内存2个字节,int类型内存4个字节。

     

  • 相关阅读:
    §6 矢量在轴上的投影(射影)
    3§5 点与直线的位置关系
    第十八章 机械振动基础
    第五章摩擦平衡问题
    矩阵论基础 3.4线性方程组的解
    第三章 平面与空间直线
    第九章点的复合运动
    §3 两平面的相关位置
    3§7 直线与平面的位置关系
    第十七章 碰撞
  • 原文地址:https://www.cnblogs.com/kali5k/p/13194331.html
Copyright © 2011-2022 走看看