java

导航

java入门教程:数据类型_强制数据类型转换

来源 :中华考试网 2016-04-29

强制数据类型转换

  强制转换的格式是在需要转型的数据前加上“( )”,然后在括号内加入需要转化的数据类型。有的数据经过转型运算后,精度会丢失,而有的会更加精确。

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

  转换规则:从存储范围大的类型到存储范围小的类型。

  具体规则为: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。

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

分享到

相关资讯