在java中,int是4个字节,但是有时我们拿到的byte是小于4个字节的,这个如何转换成int呢?下面我改进了别人的一个方法,有什么不对和可以改进的地方欢迎大家留言交流。
public int byte2Int(byte[] bytes) {
if (bytes.length < 4)
{
if (bytes.length != 0)
{
byte[] bytes1 = new byte[4];
if (bytes.length == 3)
{
bytes1[0] = 0x00;
bytes1[1] = bytes[0];
bytes1[2] = bytes[1];
bytes1[3] = bytes[2];
}
else if (bytes.length == 2)
{
bytes1[0] = 0x00;
bytes1[1] = 0x00;
bytes1[2] = bytes[0];
bytes1[3] = bytes[1];
}
else if (bytes.length == 1)
{
bytes1[0] = 0x00;
bytes1[1] = 0x00;
bytes1[2] = 0x00;
bytes1[3] = bytes[0];
}
return (bytes1[0] & 0xff) << 24
| (bytes1[1] & 0xff) << 16
| (bytes1[2] & 0xff) << 8
| (bytes1[3] & 0xff);
}
else
{
return 0;
}
}
return (bytes[0] & 0xff) << 24
| (bytes[1] & 0xff) << 16
| (bytes[2] & 0xff) << 8
| (bytes[3] & 0xff);
}