java基本类型运算溢出_012-长整数类型和解决整数运算溢出的问题

long 类型

在表示整数时,如果 int 类型的范围不够,可以使用long 型一个 long 型的变量占用 8 个字节( 64 位),最大表示范围为:- 2^63 ~2^63 -1 ,即- 9223372036854775808 一 9223372036854775807 。

一如果要表示long字面值,需要以 L 盛 l 结尾。

long a = 100000000;//会有编译错误

long b = 100000000l;

建议使用大L 因为小l很容易和1分不清

long b = 100000000L;

1b340e65b723cdc93fabf1fbf399f6e4.png

和长整型进行算术运算 会自动转换为long类型

对于较大的整数运算(超出int的范围),可以使用long类型。

比如 大家看下面的对比

```java

public static void main(String[] args) {

int a = 100;// 默认100就是int类型

//long c = 2147483648;//字面值和存储的变量 类型没有关系

long c = 2147483648L;

int k = 2147483647 + 1;//-2147483648

System.out.println(k);

long k2 = 2147483647 + 1;//-2147483648 因为这两个都是int 所以结果也是int类型 所以就溢出

System.out.println(k2);

long k3 = 2147483647 + 1L;//把其中的一个字面值改为long类型 编译器会自动把另外一个运算值也改为long

System.out.println(k3);

}

```

运算的时候,虽然左边的变量可以存的下,但是因为右边的运算 都是int类型 这时候 得到的结果 在存储给左边的long之前已经溢出了。

所以 我们应该给其中一个数字 增加L 让结果变为long类型。

f9f3fbdfabffec3162d4d17f284a337b.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值