private byte[] decode_text(byte[] image)
{
int length = 0;
int offset = 32;
for(int i=0; i<32; ++i)
{
length = (length << 1) | (image[i] & 1);
}
byte[] result = new byte[length];
for(int b=0; b<result.length; ++b )
{
for(int i=0; i<8; ++i, ++offset)
{
/* I'm getting error at the following line */
result = (byte)((result << 1) | (image[offset] & 1));
}
}
return result;
}
错误是不兼容的数据类型...必需的byte []和找到的字节..........
答案 0 :(得分:1)
你不能对result
变量进行位移,因为它是一个字节数组。
答案 1 :(得分:1)
你可能想要:
result[b] = (byte)((result[b] << 1) | (image[offset] & 1));
答案 2 :(得分:1)
此外,您无法将单个byte
分配给byte
- 数组。
答案 3 :(得分:0)
您正在投射所有这些操作的结果
((result << 1) | (image[offset] & 1));
到(byte)
并将其分配给byte[]
。
您可以声明一个新的字节变量,对该变量进行操作然后执行
result[i] = myNewByteVariable;
答案 4 :(得分:0)
您可能想要做类似
的事情 byte[] result = new byte[length];
for(int b=0; b<result.length; ++b )
{
byte value = 0;
for(int i=0; i<8; ++i, ++offset)
{
/* I'm getting error at the following line */
value = (byte) ((value << 1) | (image[offset] & 1));
}
result[b] = value;
}