android byte[] 和short[]转换的方法代码

2019-12-10 20:13:51王旭

  byte[] buf = new byte[8];
  if (bBigEnding)
   for (int i = buf.length - 1; i >= 0; i--) {
    buf[i] = (byte) (s & 0x00000000000000ff);
    s >>= 8;
   }
  else
   for (int i = 0; i < buf.length; i++) {
    buf[i] = (byte) (s & 0x00000000000000ff);
    s >>= 8;
   }
  return buf;
 }

 public short getShort(byte[] buf, boolean bBigEnding) {
  if (buf == null) {
   throw new IllegalArgumentException("byte array is null!");
  }
  if (buf.length > 2) {
   throw new IllegalArgumentException("byte array size > 2 !");
  }
  short r = 0;
  if (bBigEnding) {
   for (int i = 0; i < buf.length; i++) {
    r <<= 8;
    r |= (buf[i] & 0x00ff);
   }
  } else {
   for (int i = buf.length - 1; i >= 0; i--) {
    r <<= 8;
    r |= (buf[i] & 0x00ff);
   }
  }

  return r;
 }

 public int getInt(byte[] buf, boolean bBigEnding) {
  if (buf == null) {
   throw new IllegalArgumentException("byte array is null!");
  }
  if (buf.length > 4) {
   throw new IllegalArgumentException("byte array size > 4 !");
  }
  int r = 0;
  if (bBigEnding) {
   for (int i = 0; i < buf.length; i++) {
    r <<= 8;
    r |= (buf[i] & 0x000000ff);
   }
  } else {
   for (int i = buf.length - 1; i >= 0; i--) {
    r <<= 8;
    r |= (buf[i] & 0x000000ff);
   }
  }
  return r;
 }

 public long getLong(byte[] buf, boolean bBigEnding) {
  if (buf == null) {
   throw new IllegalArgumentException("byte array is null!");
  }
  if (buf.length > 8) {
   throw new IllegalArgumentException("byte array size > 8 !");