过大的整数

public class 过大的整数{
  public static void main(String[] args){

    // 题目 long d = 2147483647
    // 可以吗?存在类型转换吗?
    // 2147473647默认被当做int来处理
    // d变量是long类型,小容量可以自动赋值给大容量。
    long d = 2147483647;
    System.out.println(d);

    // long e = 2147483648 编译器会报错吗?为什么?
    // 在java中,整数型字面量一上来编译器就会将它看做int类型。
    // 而2147483648已经超出了int的范围,所以在没有赋值之前就已经出错了。

    // 记住,不是e放不下2147483648,e是long类型,完全可以容纳2147483648.
    // 只不过2147483648本身已经超出了int范围。
    // long e = 2147483648; // 错误:整数太大
    // 怎么解决这个问题呢?
    long e = 2147483648L;
    System.out.println(e);
  }
}

上一篇:int 取值范围讨论,原码, 反码, 补码


下一篇:为什么Java中int型数据取值范围是[-2^31,2^31-1]