2010-01-11 5 views
1
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; 
} 

erreur est incompatible ... octet types de données requis [] et trouvé octet ..........Java: erreur "incompatibles" types de données

Répondre

1

Vous ne pouvez pas changer peu la variable result parce que c'est un tableau d'octets.

1

Vous voulez probablement:

result[b] = (byte)((result[b] << 1) | (image[offset] & 1)); 
1

vous pouvez également lui assigner une seule byte à un byte -array.

0

Vous transtypez le résultat de toutes ces opérations

((result << 1) | (image[offset] & 1)); 

à (byte) et l'assigner à byte[].

Vous pouvez déclarer une nouvelle variable d'octets, avez-vous des manipulations sur cette variable puis faire

result[i] = myNewByteVariable; 
0

Vous voulez sans doute faire quelque chose comme

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; 
    } 
Questions connexes