网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 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位
Java代码
1. public static long combineInt2Long(int low, int high) {   
2.     return ((long)low & 0xFFFFFFFFl) | (((long)high << 32) & 0xFFFFFFFF00000000l);   
3. } 
   需要注意的是一定要把low和hight先转换成long在进行或运算,不然一定会出错的。
   取64位整数的高低32位
Java代码
1. public static int separateLong2int(Long val) {   
2.     int ret = new int;   
3.     ret[0] = (int) (0xFFFFFFFFl & val);   
4.     ret = (int) ((0xFFFFFFFF00000000l & val) >> 32);   
5.     return ret;   
6. } 

TAG: Java教程java教程JAVA教程

查看全部1条评论

最新评论

  • 删除 646567628 (2011-11-22 23:47:16, 评分: -5 )

    -5
查看全部1条评论


点击下载系统:http://www.myeducs.cn/chaxun/index.html?go=java中2个int合并成一个long的方法&aa=%CB%D1%CB%F7%C2%DB%CE%C4
  • 上一篇资讯: Java对象容器小结
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师