zoukankan      html  css  js  c++  java
  • java从c struct传来的字节数组中取值

    public int getInt(byte[] array,int index) {

      return (array[index]  & 0xff)  |

                (array[index + 1] & 0xff)<<8 |

                (array[index + 2] & 0xff)<<16 |

                array[index + 3] & 0xff<<24;

    }

     

    &0xff  相当与小0的数 加256 ,主要因为java byte 取值 -128-127 与 usign char 0- 255不同,所以要这样作

    << 8/16/24 主要是大小端的问题,根据实际情况改

    public class Utils{
    public static byte[] byteMerger(byte[] byte_1, byte[] byte_2){
    byte[] byte_3 = new byte[byte_1.length+byte_2.length];
    System.arraycopy(byte_1, 0, byte_3, 0, byte_1.length);
    System.arraycopy(byte_2, 0, byte_3, byte_1.length, byte_2.length);
    return byte_3;
    }
    public static int getInt(byte[] array, int index) {
    return (
    array[index] & 0xff)
    | (array[index + 1] & 0xff) << 8
    | (array[index + 2] & 0xff) << 16
    | array[index + 3] & 0xff << 24;
    }
    public static void setInt(byte[] array,int index, int value) {
    array[index] = (byte) value ;
    array[index + 1] = (byte) (value >>> 8);
    array[index + 2] = (byte) (value >>> 16);
    array[index + 3] = (byte) (value >>> 24);
    }
    }

  • 相关阅读:
    python数据类型三(字典)
    python数据类型二(列表和元组)
    python数据类型一(重点是字符串的各种操作)
    python基础二
    jquery validate学习心得
    Block 朴实理解
    Block 使用场景
    Block 进阶
    MD5加密
    SQL语句中 chinese_prc_CS_AI_WS 以及replace用法
  • 原文地址:https://www.cnblogs.com/anjsoft/p/3446217.html
Copyright © 2011-2022 走看看