如何将字节数组转换为整数数组

时间:2011-05-19 10:52:14

标签: java

我正在开发一个项目,我在其中接收图像数据作为字节数组(每像素1个字节)。每个字节代表一个灰度整数(0-255)。

为了对数据执行许多功能,我需要将字节数组转换为整数数组。 请帮帮我..

2 个答案:

答案 0 :(得分:16)

这种简单方法有什么问题吗?

public static int[] convertToIntArray(byte[] input)
{
    int[] ret = new int[input.length];
    for (int i = 0; i < input.length; i++)
    {
        ret[i] = input[i] & 0xff; // Range 0 to 255, not -128 to 127
    }
    return ret;
}

编辑:如果你想要-128到127的范围:

public static int[] convertToIntArray(byte[] input)
{
    int[] ret = new int[input.length];
    for (int i = 0; i < input.length; i++)
    {
        ret[i] = input[i];
    }
    return ret;
}

答案 1 :(得分:1)

它取决于结果int数组的使用,但通常,将字节数组或ByteBuffer转换为整数数组意味着将4个字节“包装”成1个整数,例如对于位图,所以在这种情况下我建议进行以下转换:

IntBuffer ib = ByteBuffer.wrap(input).order(ByteOrder.BIG_ENDIAN).asIntBuffer();
int[] ret = new int[ib.capacity()];
ib.get(ret);
return ret;