java合并整形_java中2个int合并成一个long
延续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相关推荐
- java long 区别_java中long和int的区别
java中long和int的区别 发布时间:2020-06-26 15:37:48 来源:亿速云 阅读:191 作者:Leah 这篇文章将为大家详细讲解有关java中long和int的区别,文章内容质 ...
- java nanotime 重复_Java中System.nanoTime方法能作为一个唯一字符串来使用吗
展开全部 一般使用 UUID 类来生成唯一的字符串e68a84e8a2ad62616964757a686964616f31333361313365package test; import java.u ...
- java二进制保存图片_Java中如何把图片转换成二进制流
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.将Image图像文件存入到数据库中 我们知道数据库里的Image类型的数据是"二进制数据",因此必须将图像文件转换成字节数组才能存 ...
- java合并排序_Java中的合并排序算法
合并排序算法是一种分而治之的算法.在分而治之的范式中,一个问题被分解成较小的问题,其中每个小问题仍然保留着大问题的所有属性--大小除外.为了解决原始问题,每个部分都是单独解决的,然后这些部分又合并在一 ...
- java string转int 异常_Java中String转int型的方法以及错误处理
应要求,本周制作了一个判断一个年份是否是闰年的程序.逻辑很简单,这里就不贴代码了.可是,在这次程序编写中发现了一个问题. 在输入年份时,如果输入1)字母2)空3)超过Int上限时,就会抛excepti ...
- java 数据合并算法_Java与算法之(11) - 合并排序
天下事,合久必分,分久必合.合并排序的基本思想正是先分再合. 例如对3, 1这个数列排序,首先是分,分为3和1两个数列,然后再合并并排序.合并需要额外的辅助空间,即建立一个两个数列长度之和的空数组用于 ...
- java io系统_java中的io系统详解
Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java 内用 U ...
- java 数据类型分为_JAVA中分为基本数据类型及引用数据类型
byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...
- java的堆排序_java中什么是堆排序?堆排序介绍
本篇文章给大家带来的内容是java中什么是堆排序?堆排序介绍.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助.堆排序介绍: 堆排序可以分为两个阶段.在堆的构造阶段,我们将原始数组重新组 ...
最新文章
- [HNOI 2010]Bounce 弹飞绵羊
- java面试题大合集(开发者必看二)
- Spring Environment
- Appium安装使用总结
- Advanced Custom Fields Pro 自定义文章字段 wordpress插件
- 一个卖了1300的Java程序引发的深思
- DataGraph for Mac v4.3.0 强大的统计分析软件
- 贝叶斯定理的通俗理解
- android使用线程计时器,计时器的Android线程
- 彻底搞懂js中的this指向
- 清除Mac电脑缓存的方法,非常实用哦
- 东北旅行第一天流水账
- PIE-engine APP 教程 ——基于PIE云平台的城市生态宜居性评价系统——以京津冀城市群为例
- contiki 学习资料
- 奈奎斯特定理和香农定理解释
- 2019测试工程师面试题
- 三星官宣所有5G设备信息图 看完有何感想
- wps里表格中间的字怎么置顶_怎么把wps文字放在最中间
- 【中文分词】 FMM BMM (python)
- SEM测试线扫与面扫
热门文章
- python3软件怎么使用_Python3时间戳如何应用于数学计算?
- 构造一个完美的分类系统
- 第10章* 网络 幂律分布
- php domain cookie cross-domian,跨域(cross-domain)访问 cookie (读取和设置)
- java类获取声明,获取用于MethodInvocation的实际类而不是声明类 - java
- 2.1 为什么要进行实例探究-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
- NameError: global name ‘***‘ is not defined
- Web开发(一)·期末不挂之第五章·CSS盒子模型(盒子模型各属性行级元素和块级元素导航栏的实现)
- 使用wireshark分析tcp/ip报文之报文头
- codeforces 665B Shopping