我有一个int数组int[] stegoBitsArray = {0,1,1,0,1,1,0,0,0,1,1,0,0,0,0,1...}
我希望每个比特转换为字节并添加到字节数组我以后将转换为字符数组,因为01101100是字母“l”等就这么...所以我试图用的ByteBuffer但它抛出我BufferOverflowException这里是我的代码片段:JAVA阵列的字节阵列
int[] stegoBitsArray = getStegoTextFromImage(stegoImage);
ByteBuffer byteBuffer = ByteBuffer.allocate(stegoBitsArray.length);
for (int i = 0; i < stegoBitsArray.length; i++) {
byteBuffer.putInt(stegoBitsArray[i]);
}
,或者它更多更好地从int数组转换为字符?
是'0110110001100001'一个**十进制数**仅包含0/1的数字,或者是一个**的二进制数**你写的二进制? –
它是一个包含值0或1的数组 –
如果要将8个“0”或“1”的int值转换为“byte”,则必须使用位操作(例如,使用'<<'和'|'运算符。没有库方法可以为你做,*你*必须编写代码来完成它。 --- *意见:* getStegoTextFromImage()是一种什么样的白痴方法,将* bits *作为int []'返回? * Yikes!* – Andreas