2017-07-13 6 views
-8

Ceci est mon code C.Quel est l'équivalent Java de * C de l'omble chevalier

int test(unsigned char* input, unsigned char* output, int in_len) 
{ 
    int i, out_len = 0; 

    for(i = 0; i < in_len; i++) 
    { 
     if (*(input+i) == 0x23) 
     { 
      i++; 
      *output++ = *(input+i)^0x40; 
     } 
     else 
     { 
      *output++ = *(input+i); 
     } 
     out_len++; 
    } 
    return(out_len); 
} 

Je veux convertir mon code Java.

J'ont des valeurs base64 avant d'appeler la méthode test().

Après décodage, je fais appel méthode test() par char *

Cependant, Java n'a pas de type char*.

Comment puis-je utiliser ce code en utilisant Java?

Aidez-moi .... Merci ..

public static byte[] test(byte[] input, byte[] output, int in_len) 
{ 
    int i, out_len = 0; 

    for(i = 0; i < in_len; i++) 
    { 
     if ((input[i]) == 0x23) 

      i++; 
      output[i] = (byte) (input[i]^0x40); 
     } 
     else 
     { 
      output[i] = input[i]; 
     } 
     out_len++; 
    } 
    return(output); 
} 
+0

Merci mush ^^ Je ne savais pas comment quête. parce que je ne suis pas bon à l'anglais..haha alors je vais faire moi-même. – peooooople

Répondre

0

Java ne char, il n'a pas des pointeurs, donc char * doit être char []. L'autre différence dans java char est qu'il est en quelque sorte similaire à C wide-char, 2 octets de long. il est donc préférable d'utiliser l'octet java qui est très similaire à C char, mais ne peut pas être non signé, sont toujours signés octet java, mais la façon dont vous voulez utiliser n'a pas d'importance.

0

Vous pouvez utiliser un tableau de char en Java (char[]). Cependant, vos données seront plus grandes (2 octets par caractère en Java vs 1 octet par caractère en C).

Dans le cas où vous avez besoin de convertir l'entrée en chaîne, les caractères communs seront stockés sous forme de 1 octet. Vous pouvez lire plus ici: Size of char in Java

Dans le cas contraire, votre application semble bien.