强制类型转换

 

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

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

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

posted on 2016-04-05 21:20  Jleeci  阅读(510)  评论(0编辑  收藏  举报

导航