在本文中,我们将解释如何在 Java 中将 long 转换为 int ,并编写一些代码示例。由于 long是比 int 更大的数据类型,所以这里我们应该使用类型转换来进行这种转换。您可能已经知道 Java 中的 long int 都是原始数据类型。这意味着它们不是类对象。所有对象和数组都存储在堆空间中,而基本类型(如 int long) 存储在堆栈内存中。 Long int 有点相似。整数表示整数,可以是正数、负数或零。既 int 是整数类型,因此它们在某种程度上是兼容的。问题是, long 类型的范围是-263到263-1,或者-9223372036854775808到9223372036854775807。也就是说,Java程序为 long 类型分配了64位。同时, int 类型占32位,可以放-231~231-1之间的数,也可以放-2147483648到2147483647之间的数。这意味着任意数量的int类型都可以很容易地 放入 一个 型。在 Java 中,当使用基元时,从较窄类型到较宽类型的转换是自动的。换句话说,它被称为加宽。 int myInt= 18; long myLong= 16000; myLong = myInt; 这里我们将一个 int 分配给一个 long 变量。一切都进行得很顺利,在一个更大的范围内,一个较小的范围安静地适合,除了内存空间我们没有丢失任何东西。 顺便说一句,当我们声明一个long 类型的变量并定义它的值时,最好将字母 l分配给它,这在我们处理 int 范围之外的数字时会派上用场。 long myVeryLong = 10000000000l;

Java long 到 int 的转换

现在让我们回到本文的主要任务——Java long int 的 转换。问题是更大的东西并不总是适合更小的东西。所以这里我们不能在 Java 中自动将“smaller”变成“bigger”。如果我们尝试像前面的示例一样操作,反之亦然: //example without typecasting…nice trying! public static void main(String[] args) { int myInt= 18; long myLong= 16000; myInt = myLong; Java 编译器不会让我们这样做并且会抛出一个错误。所以对于这个操作,我们需要用到所谓的类型转换。这个过程称为缩小类型转换。要缩小变量的范围,您需要明确指定要将值转换为的类型。这是一个示例,我们将尝试将一个“小” long 数字 放入 int (应该适合)和两个超出 int范围的“大” long 数字。 public class longToInt { public static void main(String[] args) { int myInt = 18; long myLong = 16000; long myVeryLong = 2147483648l;//l in the end means ‘long’ long myVeryLong = 10000000000l; myInt = (int) myLong; System.out.println(myInt); myInt = (int) oneMoreLong; System.out.println(myInt); myInt = (int) myVeryLong; System.out.println(myInt); 我们已经通知编译器我们要将 long 值放入一个 int 变量中,我们对该决定的后果负责。编译器看到一个更窄类型的明确指示,执行转换。结果,我们得到了输出: 16000 -2147483648 141006540​​8