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复习(拾遗)3
    Python拾遗2
    Python复习(拾遗)
    python练习 自动绘图
    多分支结构
    turtle
    Python练习
    随便写点…
  • 原文地址:https://www.cnblogs.com/anjsoft/p/3446217.html
Copyright © 2011-2022 走看看