延续32位时代的逻辑通常只会在32位整数中取出高16位和低16位的短整数(short)或相反的合并操作,如c/c++语系中loword和hiword。现在64位的cpu普及到已是标配了,所以这种经典的算法也会在64位的long中也会有相应的应用。我在使用中则遇到了一些问题,记录下备忘。

需要取32位int的高低16位,或是合并2个int到64位中,即是通过cpu中最基本的"与"、"或"和位移算法来实现。如想要取64位的高32位,那么是通过"与"算法屏蔽掉低32位再把高32位移动到低32位,最后存储到32位的寄存器里。合并则反之操作。

下面贴代码

合并2个32位整数到64位

public static long combineInt2Long(int low, int high) {

return ((long)low & 0xFFFFFFFFl) | (((long)high << 32) & 0xFFFFFFFF00000000l);

}

需要注意的是一定要把low和hight先转换成long在进行或运算,不然一定会出错的。

取64位整数的高低32位

public static int[] separateLong2int(Long val) {

int[] ret = new int[2];

ret[0] = (int) (0xFFFFFFFFl & val);

ret[1] = (int) ((0xFFFFFFFF00000000l & val) >> 32);

return ret;

}

java合并整形_java中2个int合并成一个long相关推荐

  1. java long 区别_java中long和int的区别

    java中long和int的区别 发布时间:2020-06-26 15:37:48 来源:亿速云 阅读:191 作者:Leah 这篇文章将为大家详细讲解有关java中long和int的区别,文章内容质 ...

  2. java nanotime 重复_Java中System.nanoTime方法能作为一个唯一字符串来使用吗

    展开全部 一般使用 UUID 类来生成唯一的字符串e68a84e8a2ad62616964757a686964616f31333361313365package test; import java.u ...

  3. java二进制保存图片_Java中如何把图片转换成二进制流

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.将Image图像文件存入到数据库中 我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存 ...

  4. java合并排序_Java中的合并排序算法

    合并排序算法是一种分而治之的算法.在分而治之的范式中,一个问题被分解成较小的问题,其中每个小问题仍然保留着大问题的所有属性--大小除外.为了解决原始问题,每个部分都是单独解决的,然后这些部分又合并在一 ...

  5. java string转int 异常_Java中String转int型的方法以及错误处理

    应要求,本周制作了一个判断一个年份是否是闰年的程序.逻辑很简单,这里就不贴代码了.可是,在这次程序编写中发现了一个问题. 在输入年份时,如果输入1)字母2)空3)超过Int上限时,就会抛excepti ...

  6. java 数据合并算法_Java与算法之(11) - 合并排序

    天下事,合久必分,分久必合.合并排序的基本思想正是先分再合. 例如对3, 1这个数列排序,首先是分,分为3和1两个数列,然后再合并并排序.合并需要额外的辅助空间,即建立一个两个数列长度之和的空数组用于 ...

  7. java io系统_java中的io系统详解

    Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java 内用 U ...

  8. java 数据类型分为_JAVA中分为基本数据类型及引用数据类型

    byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...

  9. java的堆排序_java中什么是堆排序?堆排序介绍

    本篇文章给大家带来的内容是java中什么是堆排序?堆排序介绍.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助.堆排序介绍: 堆排序可以分为两个阶段.在堆的构造阶段,我们将原始数组重新组 ...

最新文章

  1. [HNOI 2010]Bounce 弹飞绵羊
  2. java面试题大合集(开发者必看二)
  3. Spring Environment
  4. Appium安装使用总结
  5. Advanced Custom Fields Pro 自定义文章字段 wordpress插件
  6. 一个卖了1300的Java程序引发的深思
  7. DataGraph for Mac v4.3.0 强大的统计分析软件
  8. 贝叶斯定理的通俗理解
  9. android使用线程计时器,计时器的Android线程
  10. 彻底搞懂js中的this指向
  11. 清除Mac电脑缓存的方法,非常实用哦
  12. 东北旅行第一天流水账
  13. PIE-engine APP 教程 ——基于PIE云平台的城市生态宜居性评价系统——以京津冀城市群为例
  14. contiki 学习资料
  15. 奈奎斯特定理和香农定理解释
  16. 2019测试工程师面试题
  17. 三星官宣所有5G设备信息图 看完有何感想
  18. wps里表格中间的字怎么置顶_怎么把wps文字放在最中间
  19. 【中文分词】 FMM BMM (python)
  20. SEM测试线扫与面扫

热门文章

  1. python3软件怎么使用_Python3时间戳如何应用于数学计算?
  2. 构造一个完美的分类系统
  3. 第10章* 网络 幂律分布
  4. php domain cookie cross-domian,跨域(cross-domain)访问 cookie (读取和设置)
  5. java类获取声明,获取用于MethodInvocation的实际类而不是声明类 - java
  6. 2.1 为什么要进行实例探究-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  7. NameError: global name ‘***‘ is not defined
  8. Web开发(一)·期末不挂之第五章·CSS盒子模型(盒子模型各属性行级元素和块级元素导航栏的实现)
  9. 使用wireshark分析tcp/ip报文之报文头
  10. codeforces 665B Shopping