Comment convertir un tableau de (00s ... 11s), la représentation binaire de chaque caractère, à une chaîne de caractères? Dans mon code je prends un tableau entier de longueur 64, puis divise le tableau plusieurs fois, chaque fois que je prends 8 indices équivalents à 8 bits, puis commence à partir de l'index 7 du tableau de longueur 8, puis multiplie la valeur de l'index par 2^numéro d'index qui devrait être 7 pour la première fois, puis 6. etc.)Comment convertir un tableau de (00s ... 11s), la représentation binaire de chaque caractère, en une chaîne de caractères
Mais je reçois une exception.
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 8
at testing.cipherText(testing.java:30)
at testing.main(testing.java:8)
Si mon algorithme est incorrect, s'il vous plaît me dire
import java.util.*;
public class testing {
public static void main(String [] args)
{
int [] array ={0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,1,1,0,0,1};
String c = cipherText (array);
//System.out.print(i);
}
public static String cipherText (int [] array)
{
int decimal = 0;
int [] intA = new int [8];
int from = array.length;
char x = 0;
int dre;
String s = null;
for (int i = 0; i < array.length; i = i + 8)
{
from=from-8;
intA=copyPartOfArray(array,from,8);
for (int j=0;j<intA.length;j++)
{
dre = (int) Math.pow (2.0, (double)7-i);
dre = dre * intA[i];
decimal = decimal+dre;
x =(char)decimal;
}
s=x+s;
}
return s;
}
public static int [] copyPartOfArray (int [] a, int from, int to) // return a subArray
{
int [] result=new int [to];
System.arraycopy(a,from, result, 0, to);
return result;
}
}
écrire votre question avec un peu de ponctuation, s'il vous plaît .. Pour moi, il est difficile de comprendre votre flux de phrases – bluish
je vous suggère d'essayer cela dans un débogueur. Je vous suggère également de chercher des moyens de simplifier votre code. Vous semblez également construire votre chaîne dans l'ordre inverse. –
Si vous souhaitez multiplier un nombre par une puissance de 2, vous pouvez utiliser l'opérateur de décalage <<. –