android byte转换工具类--笔记

来源:互联网 发布:玛雅软件培训 编辑:程序博客网 时间:2024/05/22 03:18
public abstract class ByteUtil{        private static final String TAG = "StringUtils";        private static long messageId = 0;               /**     * byte[] �?int     * @param b     * @return     */    public static int bytesToInt(byte[] bytes, int startPos, int length)    {        byte[] temp = new byte[length];        System.arraycopy(bytes, startPos, temp, 0, length);        int fromByte = 0;        for (int i = 0; i < 4; i++)        {            int n = (temp[i] < 0 ? (int) temp[i] + 256 : (int) temp[i]) << (8 * (3 - i));            fromByte += n;                    }        return fromByte;    }                /**     * byte[] 转short     * @param b     * @return     */    public static short bytesToShort(byte[] b, int startPos, int length)    {        byte[] temp = new byte[length];        System.arraycopy(b, startPos, temp, 0, length);        return (short) (temp[1] & 0xff | (temp[0] & 0xff) << 8);    }        /**     * byte[] �?String UTF-8编码     * @param b     * @return     * @throws UnsupportedEncodingException      */    public static String bytesToString(byte[] bytes, int startPos, int length)    {        byte[] temp = new byte[length];        System.arraycopy(bytes, startPos, temp, 0, length);        String returnStr = "";        try        {            returnStr = new String(temp, "UTF-8");        }        catch (UnsupportedEncodingException e)        {            // TODO Auto-generated catch block            e.printStackTrace();        }        return returnStr;    }    public final static byte[] getBytes(short s)    {        byte[] buf = new byte[2];        for (int i = buf.length - 1; i >= 0; i--)        {            buf[i] = (byte) (s & 0x00ff);            s >>= 8;        }        return buf;    }        public final static byte[] getBytes(int s)    {        byte[] buf = new byte[4];        for (int i = buf.length - 1; i >= 0; i--)        {            buf[i] = (byte) (s & 0x000000ff);            s >>= 8;        }        return buf;    }        public static String bytesToHexString(byte[] src){         StringBuilder stringBuilder = new StringBuilder("");         if (src == null || src.length <= 0) {             return null;         }         for (int i = 0; i < src.length; i++) {             int v = src[i] & 0xFF;             String hv = Integer.toHexString(v);             if (hv.length() < 2) {                 stringBuilder.append(0);             }             stringBuilder.append(hv);         }         return stringBuilder.toString();     }         public static byte[] hexStringToBytes(String hexString) {         if (hexString == null || hexString.equals("")) {             return null;         }         hexString = hexString.toUpperCase();         int length = hexString.length() / 2;         char[] hexChars = hexString.toCharArray();         byte[] d = new byte[length];         for (int i = 0; i < length; i++) {             int pos = i * 2;             d[i] = (byte) (charToByte(hexChars[pos]) << 4 | charToByte(hexChars[pos + 1]));         }         return d;     }         private static byte charToByte(char c) {         return (byte) "0123456789ABCDEF".indexOf(c);     }                  public static short bytesToShort2( byte[] b, int startPos, int length )    {        int mask = 0x000000ff;          int temp = 0;          short n  = 0;                  for( int i=0; i<2 && i<length; i++ )        {             n   <<= 8;             temp  = b[startPos+i] & mask;             n    |= temp;          }                  return n;     }    public static int bytesToInt2( byte[] b, int startPos, int length )     {          int mask = 0x000000ff;          int temp = 0;          int n    = 0;                  for( int i=0; i<4 && i<length; i++ )        {             n   <<= 8;             temp  = b[startPos+i] & mask;             n    |= temp;          }                  return n;      }       public static long bytesToLong2( byte[] b, int startPos, int length )     {          int  mask = 0x000000ff;          int  temp = 0;          long n    = 0;          for( int i=0; i<8 && i<length; i++ )        {             n   <<= 8;             temp  = b[startPos+i] & mask;             n    |= temp;          }                  return n;      }                     }

阅读全文
0 0
原创粉丝点击