[ZZ]byte[]からshort,int,longへの相互変換
2819 ワード
public final static byte[] getBytes(short s, boolean asc)
{
byte[] buf = new byte[2];
if (asc)
for (int i = buf.length - 1; i >= 0; i--)
{
buf[i] = (byte) (s & 0x00ff);
s >>= 8;
}
else
for (int i = 0; i < buf.length; i++)
{
buf[i] = (byte) (s & 0x00ff);
s >>= 8;
}
return buf;
}
public final static byte[] getBytes(int s, boolean asc)
{
byte[] buf = new byte[4];
if (asc)
for (int i = buf.length - 1; i >= 0; i--)
{
buf[i] = (byte) (s & 0x000000ff);
s >>= 8;
}
else
for (int i = 0; i < buf.length; i++)
{
buf[i] = (byte) (s & 0x000000ff);
s >>= 8;
}
return buf;
}
public final static byte[] getBytes(long s, boolean asc)
{
byte[] buf = new byte[8];
if (asc)
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 final static short getShort(byte[] buf, boolean asc)
{
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 (asc)
for (int i = buf.length - 1; i >= 0; i--)
{
r <<= 8;
r |= (buf[i] & 0x00ff);
}
else
for (int i = 0; i < buf.length; i++)
{
r <<= 8;
r |= (buf[i] & 0x00ff);
}
return r;
}
public final static int getInt(byte[] buf, boolean asc)
{
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 (asc)
for (int i = buf.length - 1; i >= 0; i--)
{
r <<= 8;
r |= (buf[i] & 0x000000ff);
}
else
for (int i = 0; i < buf.length; i++)
{
r <<= 8;
r |= (buf[i] & 0x000000ff);
}
return r;
}
public final static long getLong(byte[] buf, boolean asc)
{
if (buf == null)
{
throw new IllegalArgumentException("byte array is null!");
}
if (buf.length > 8)
{
throw new IllegalArgumentException("byte array size > 8 !");
}
long r = 0;
if (asc)
for (int i = buf.length - 1; i >= 0; i--)
{
r <<= 8;
r |= (buf[i] & 0x00000000000000ff);
}
else
for (int i = 0; i < buf.length; i++)
{
r <<= 8;
r |= (buf[i] & 0x00000000000000ff);
}
return r;
}