zoukankan      html  css  js  c++  java
  • 强制类型转换

     

             强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换。

    l 转换规则

    从存储范围大的类型到存储范围小的类型。

    具体规则为:

             double→float→long→int→short(char)→byte

    语法格式为:

             (转换到的类型)需要转换的值

    示例代码:

             double d = 3.10;

             int n = (int)d;

    这里将double类型的变量d强制转换成int类型,然后赋值给变量n。需要说明的是小数强制转换为整数,采用的是“去1法”,也就是无条件的舍弃小数点的所有数字,则以上转换出的结果是3。整数强制转换为整数时取数字的低位,例如int类型的变量转换为byte类型时,则只去int类型的低8位(也就是最后一个字节)的值。

    示例代码:

             int n = 123;

             byte b = (byte)n;

             int m = 1234;

             byte b1 = (byte)m;

    则b的值还是123,而b1的值为-46。b1的计算方法如下:m的值转换为二进制是10011010010,取该数字低8位的值作为b1的值,则b1的二进制值是11010010,按照机器数的规定,最高位是符号位,1代表负数,在计算机中负数存储的是补码,则该负数的原码是10101110,该值就是十进制的-46。

    l 注意问题

    强制类型转换通常都会存储精度的损失,所以使用时需要谨慎。

    3.7.2 其它

    后续的复合数据类型,如类和接口等,也存在类似的转换。

  • 相关阅读:
    新版open live writer连接博客园
    github个人博客域名绑定(附带详细原理说明)
    开源性能监控分析工具glowroot
    (转)Python实例手册
    Jetty嵌入式Web容器攻略
    H2数据库攻略
    CAS ticket过期策略
    CAS自定义登录验证方法
    Sonatype Nexus高级配置
    配置sonar、jenkins进行持续审查
  • 原文地址:https://www.cnblogs.com/JLeeci/p/5356891.html
Copyright © 2011-2022 走看看