Java中byte数组与long数组相互转化

Java中byte数组与long数组相互转化
ByteAndLongArrayTest代码如下:
  1. package com.array.test;
  2. import java.io.IOException;
  3. /**
  4. * @ version 1.0
  5. * @ author  wangwei
  6. * @ created on  2008-10-17
  7. */
  8. public class ByteAndLongArrayTest {
  9.     /**
  10.      * long数组转化为byte数组
  11.      *
  12.      * @param longArray
  13.      * @return
  14.      * @throws IOException
  15.      */
  16.     public static byte[] longToByte(long[] longArray)throws IOException{
  17.         byte[] byteArray=new byte[longArray.length*8];
  18.         for(int i=0;i<longArray.length;i++)
  19.         {
  20.             byteArray[0+8*i]=(byte)(longArray[i]>>56);
  21.             byteArray[1+8*i]=(byte)(longArray[i]>>48);
  22.             byteArray[2+8*i]=(byte)(longArray[i]>>40);
  23.             byteArray[3+8*i]=(byte)(longArray[i]>>32);
  24.             byteArray[4+8*i]=(byte)(longArray[i]>>24);
  25.             byteArray[5+8*i]=(byte)(longArray[i]>>16);
  26.             byteArray[6+8*i]=(byte)(longArray[i]>>8);
  27.             byteArray[7+8*i]=(byte)(longArray[i]>>0);
  28.         }
  29.         return byteArray;
  30.     }
  31.    
  32.     /**
  33.      * byte数组转化为long数组
  34.      *
  35.      * @param byteArray
  36.      * @return
  37.      * @throws IOException
  38.      */
  39.     public static long[] byteToLong(byte[] byteArray)throws IOException{
  40.        
  41.         long [] longArray=new long[byteArray.length/8];
  42.         for(int i=0;i<longArray.length;i++)
  43.         {
  44. longArray[i]=(((long)byteArray[0+8*i]&0xff)<<56)
  45.                         |(((long)byteArray[1+8*i]&0xff)<<48)
  46.                         |(((long)byteArray[2+8*i]&0xff)<<40)
  47.                         |(((long)byteArray[3+8*i]&0xff)<<32)
  48.                         |(((long)byteArray[4+8*i]&0xff)<<24)
  49.                         |(((long)byteArray[5+8*i]&0xff)<<16)
  50.                         |(((long)byteArray[6+8*i]&0xff)<<8)
  51.                         |(((long)byteArray[7+8*i]&0xff)<<0);
  52.            
  53.         }
  54.         return longArray;
  55.     }
  56.     /**
  57.      * @param args
  58.      */
  59.     public static void main(String[] args) throws Exception{
  60.         // TODO Auto-generated method stub
  61.         long [] longArray={1,2,3,4,500000};
  62.         byte [] byteArray=longToByte(longArray);
  63.         for(int i=0;i<byteArray.length;i++)
  64.         {
  65.             System.out.print(byteArray[i]+" ");
  66.         }
  67.         System.out.println();
  68.         long [] longArray2=byteToLong(byteArray);
  69.         for(int i=0;i<longArray.length;i++)
  70.             System.out.print(longArray[i]+" ");
  71.     }
  72. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值