java 把64位long,转成2个32位的Int,再回转成long

简介:


java中long是64位,正好可以转成2个32位的int。


项目中正好 要做这种转换,所以,记录一下转换过程。


简单事例:

 long i = 55;
        int i1 = (int) i;
        int i2 = (int) (i << 32);
        System.out.println("i1:" + i1 + ";i2:" + i2);

        long l1 = (i2 & 0x000000ffffffffL) << 32;
        long l2 = i1 & 0x00000000ffffffffL;
        long l = l1 | l2;
        System.out.println("l:" + l);


结果:

i1:55;i2:0
l:55

注意:传递时,big-endian和little-endian问题





目录
相关文章
|
3月前
|
Java UED
Java中String强转int:一种常见的错误和解决方法
在Java中将非数字字符串转换为整数会导致`NumberFormatException`。要解决这个问题,可以使用`try-catch`捕获异常,正则表达式验证数字格式,或利用异常信息提供错误提示。例如,`Integer.parseInt()`会因遇到非数字字符如`&quot;123abc&quot;`而抛出异常,但通过异常处理或正则`\\d+`可确保安全转换。记得在编程时避免直接强转,以防止程序异常中断。
|
23天前
|
Java
【Java基础面试十一】、int和Integer有什么区别,二者在做==运算时会得到什么结果?
这篇文章解释了Java中`int`基本数据类型和其包装类`Integer`之间的区别,并指出在进行`==`运算时,`Integer`会拆箱为`int`类型,然后比较它们的值是否相等。
【Java基础面试十一】、int和Integer有什么区别,二者在做==运算时会得到什么结果?
|
23天前
|
Java
【Java基础面试五】、 int类型的数据范围是多少?
这篇文章回答了Java中`int`类型数据的范围是-2^31到2^31-1,并提供了其他基本数据类型的内存占用和数值范围信息。
【Java基础面试五】、 int类型的数据范围是多少?
|
20天前
|
Java
|
21天前
|
存储 Java 索引
|
21天前
|
存储 Java 索引
64 位 JVM 中 int 的大小解析
【8月更文挑战第21天】
26 0
|
4月前
|
安全 Java 编译器
long类型在32位操作系统上的安全问题
long类型在32位操作系统上的安全问题
81 1
|
3月前
|
C语言
C语言-----计算两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
C语言-----计算两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
|
4月前
|
缓存 安全 Java
Java的Integer和int有什么区别?
Java的Integer和int有什么区别?
39 1
|
4月前
|
存储 算法 物联网
int8与long long的深入对比与探讨
int8与long long的深入对比与探讨