• 强制类型转换


     

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

    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 其它

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

  • 相关阅读:
    读《ASP.NET Core3框架揭秘》之3&4~依赖注入
    读《ASP.NET Core3框架揭秘》之2~跨平台的奥秘
    读《ASP.NET Core3框架揭秘》之1~全新的开发体验
    C# 获取当前方法/父方法的信息
    Redis——集群(cluster)
    Redis——哨兵(sentinel)
    Redis——主从复制
    Redis——版本升级&数据迁移
    Redis——6.0集群安装部署
    Redis——常用命令
  • 原文地址:https://www.cnblogs.com/JLeeci/p/5356891.html
Copyright © 2020-2023  润新知