0


JAVA数据类型的强制转换

先了解一下基本得数据类型,以整数类型为例,如下表:
数据类型长度范围byte1字节-128127short2字节-3276832767int(默认)4字节-21474836482147483647long8字节-xxxxxx(xxxxxx-1)
** 范围的计算方法**:根据以上数据我们进行分析总结规律如下:

-128=-2^7 ; 127=2^7-1

-32768=-2^15 ; 32767=2^15-1

........

最小值=-2^(字节✖8-1)]       最大值=2^(字节✖8-1)-1

根据数据我们得出了数据类型的范围计算方法,我们再深度思考一下,为什么这样算那?为什么非要乘以它的位数-1次方哪,而不是乘以位数次方,说到这,我们不由得需要回顾一下计算机基础知识。首先我们需要知道以下两点:

  1. 计算机内部数据和运算均采用的是二进制;
  2. 计算机中数据分为有符号数和无符号数,对于有符号数,计算机规定用最高位来表示符号。“0”表示正数,“1”表示负数;

通过以上两点我们也可猜到JAVA中的数据也是有符号的,最高位代表正负,所以:

最小值=-2^(字节✖8-1)] 最大值=2^(字节✖8-1)-1

最大值减一是因为数字0。

强制转换使用条件

每种数据类型都有自己得取值范围,当我们进行数据转换时,由小范围➡大范围时编译不会报错,但当由大范围➡小范围时,即使你输入得数是1(即数据都在两个数据类型范围内),编译时也会报错,因为数虽然没有溢出,但数据类型的位溢出了,此时编译不会通过,需要强制转换。由此可见,强制转换是在大范围得数据类型向小范围的数据类型转换中使用的。

注意事项:当我们对数据类型不进行声明时,对于整数类型默认为int类型、浮点类型默认为double类型等.

强制转换的格式(以double向int转换为例)

public class Sumer{
    public static void main(String[] arrgs){
       double a,b; //将a,b的数据类型命名为double.
       int c;
       a=12;
       b=13;
       c=int(a+b)   
       System.out.println(c);
    } 
}

因此强制转换的格式为:

变量名1=(变量名1的数据类型)(变量运算)


本文转载自: https://blog.csdn.net/weixin_67041444/article/details/123043578
版权归原作者 JAVA小笨熊 所有, 如有侵权,请联系我们删除。

“JAVA数据类型的强制转换”的评论:

还没有评论