JAVA数据类型的强制转换

本文探讨了Java中的整数类型及其取值范围,基于二进制表示法解析了数据类型的计算方法,并强调了最高位用于表示符号的重要性。同时,介绍了强制类型转换的条件与格式,指出从小范围到大范围转换时不会出错,反之则需要强制转换。在不声明数据类型时,默认整数为int,浮点数为double。
摘要由CSDN通过智能技术生成

先了解一下基本得数据类型,以整数类型为例,如下表:

数据类型长度范围
byte1字节-128~127
short2字节-32768~32767
int(默认)4字节-2147483648~2147483647
long8字节-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的数据类型)(变量运算)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值