byte数组和int,long之间的互相转换

 public static long byteToLong(byte[] value) {
        long temp = 0;
        for (int i = 0; i < value.length; i++) {
            temp = (temp | value[i]) << 8;
        }
        return temp;
    }
 public static byte[] longToByte(long number) {
        long temp = number;
        byte[] b = new byte[8];
        for (int i = b.length - 1; i >= 0; i--) {
            b[i] = Long.valueOf(temp & 0xff).byteValue();// 将最低位保存在最高位
            temp = temp >> 8; // 向右移8位
        }
        return b;
    }

    public static byte[] intToByte(int number) {
        int temp = number;
        byte[] b = new byte[4];
        for (int i = b.length - 1; i >= 0; i--) {
            b[i] = Integer.valueOf(temp & 0xff).byteValue();// 将最低位保存在最高位
            temp = temp >> 8; // 向右移8位
        }
        return b;
    }


public static long byteToLong(byte[] value) {
        long temp = 0;
        for (int i = 0; i < value.length; i++) {
            temp = (temp | value[i]) << 8;
        }
        return temp;
    }
/**
      * byte数组中取int数值,本方法适用于(低位在前,高位在后)的顺序,和和intToBytes()配套使用     
*       
* @param src      
*            byte数组      
* @param offset      
*            从数组的第offset位开始      
* @return int数值      
*/    
public static int bytesToInt(byte[] src, int offset) {  

    int value;    

    value = (int) ((src[offset] & 0xFF)   

            | ((src[offset+1] & 0xFF)<<8)   

            | ((src[offset+2] & 0xFF)<<16)   

            | ((src[offset+3] & 0xFF)<<24));  return value;  

}  

  1. /**  
  2.     * byte数组中取int数值,本方法适用于(低位在后,高位在前)的顺序。和intToBytes2()配套使用 
  3.     */  
  4. public static int bytesToInt2(byte[] src, int offset) {  
  5.     int value;    
  6.     value = (int) ( ((src[offset] & 0xFF)<<24)  
  7.             |((src[offset+1] & 0xFF)<<16)  
  8.             |((src[offset+2] & 0xFF)<<8)  
  9.             |(src[offset+3] & 0xFF));  
  10.   return value;  
    1. public static byte[] intToByte4(int Num)
    2.   {  
    3.  byte[] abyte=new byte[8]; //int为32位除4位,数组为8   
    4. int j=0xf;    
    5. int z = 4; //转换的位数    
    6. for (int i = 0; i < 8; i++)   
    7. {    
    8. int y = j << z * i;   
    9.  int x = Num & y;    
    10. x = x >> (z * i);    
    11. abyte[i] = (byte)(x);   
    12. }    
    13. return abyte;  
    14. }

转载于:https://www.cnblogs.com/ting5/p/5323035.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值