''
整形和长整形的转换
整形(int)和长整形(long)是常见的计算机数据类型,用于表示整数值。在某些情况下,需要在整形和长整形之间进行转换。
整形转长整形
将整形转换为长整形非常简单,可以使用`(long)`强制类型转换运算符。例如:
int num_int = 123;
long num_long = (long)num_int;
在这种情况下,`num_long`将包含值123的副本。
长整形转整形
将长整形转换为整形则需要更小心,因为有可能超出整型的值范围(- 至 )。如果长整型的值超出此范围,则转换结果将被截断为整型的范围。
要进行安全的转换,可以使用`(int)`强制类型转换运算符,并指定一个额外的参数以指定截断时的行为。例如:
```
long num_long = ;
int num_int = (int)num_long; // 截断为整型范围,结果为-
```
或者,可以使用`Math.toIntExact()`方法,该方法会在超出整型范围时抛出`ArithmeticException`:
```
long num_long = ;
int num_int = Math.toIntExact(num_long); // 抛出ArithmeticException
```
通过使用适当的转换方法,可以在整形和长整形之间安全有效地进行转换,确保数据完整性和防止意外错误。