byte[]到short、int、long的相互转换

 001 public final static byte [] getBytes( short s, boolean asc)

002 {
003      byte [] buf = new byte [2];
004      if (asc)
005          for ( int i = buf.length - 1; i >= 0; i--)
006          {
007              buf[i] = ( byte ) (s & 0x00ff);
008            s >>= 8;
009          }
010      else
011          for ( int i = 0; i < buf.length; i++)
012          {
013              buf[i] = ( byte ) (s & 0x00ff);
014            s >>= 8;
015          }
016      return buf;
017 }
018
019 public final static byte [] getBytes( int s, boolean asc)
020 {
021      byte [] buf = new byte [4];
022      if (asc)
023        for ( int i = buf.length - 1; i >= 0; i--)
024        {
025          buf[i] = ( byte ) (s & 0x000000ff);
026          s >>= 8;
027        }
028      else
029        for ( int i = 0; i < buf.length; i++)
030        {
031          buf[i] = ( byte ) (s & 0x000000ff);
032          s >>= 8;
033        }
034      return buf;
035 }
036
037 public final static byte [] getBytes( long s, boolean asc)
038 {
039      byte [] buf = new byte [8];
040      if (asc)
041        for ( int i = buf.length - 1; i >= 0; i--)
042          {
043          buf[i] = ( byte ) (s & 0x00000000000000ff);
044          s >>= 8;
045        }
046      else
047        for ( int i = 0; i < buf.length; i++)
048          {
049          buf[i] = ( byte ) (s & 0x00000000000000ff);
050          s >>= 8;
051        }
052      return buf;
053 }
054
055 public final static short getShort( byte [] buf, boolean asc)
056 {
057      if (buf == null )
058      {
059        throw new IllegalArgumentException( "byte array is null!" );
060      }
061      if (buf.length > 2)
062      {
063        throw new IllegalArgumentException( "byte array size > 2 !" );
064      }
065      short r = 0;
066      if (asc)
067        for ( int i = buf.length - 1; i >= 0; i--)
068          {
069          r <<= 8;
070          r |= (buf[i] & 0x00ff);
071        }
072      else
073        for ( int i = 0; i < buf.length; i++)
074          {
075          r <<= 8;
076          r |= (buf[i] & 0x00ff);
077        }
078      return r;
079 }
080
081 public final static int getInt( byte [] buf, boolean asc)
082 {
083      if (buf == null )
084      {
085        throw new IllegalArgumentException( "byte array is null!" );
086      }
087      if (buf.length > 4)
088      {
089        throw new IllegalArgumentException( "byte array size > 4 !" );
090      }
091      int r = 0;
092      if (asc)
093        for ( int i = buf.length - 1; i >= 0; i--)
094          {
095          r <<= 8;
096          r |= (buf[i] & 0x000000ff);
097        }
098      else
099        for ( int i = 0; i < buf.length; i++)
100          {
101          r <<= 8;
102          r |= (buf[i] & 0x000000ff);
103        }
104      return r;
105 }
106
107 public final static long getLong( byte [] buf, boolean asc)
108 {
109      if (buf == null )
110      {
111        throw new IllegalArgumentException( "byte array is null!" );
112      }
113      if (buf.length > 8)
114      {
115        throw new IllegalArgumentException( "byte array size > 8 !" );
116      }
117      long r = 0;
118      if (asc)
119        for ( int i = buf.length - 1; i >= 0; i--)
120          {
121          r <<= 8;
122          r |= (buf[i] & 0x00000000000000ff);
123        }
124      else
125        for ( int i = 0; i < buf.length; i++)
126          {
127          r <<= 8;
128          r |= (buf[i] & 0x00000000000000ff);
129        }
130      return r;
131 }

你可能感兴趣的:(byte[])