1 réponse
Voici une manière assez rapide de le faire, même si on pourrait surement encore l'optimiser un peu, en particulier avec les opérateurs bit-à-bit.
import java.util.ArrayList;
import java.util.List;
public class Test
{
static List<Byte> convert(String s)
{
int i, j=0, n=8*s.length();
List<Byte> liste = new ArrayList<Byte>(n);
for (i=0; i<n; i++)
liste.add((byte) 0);
for (byte b : s.getBytes())
{
for (i=j+7; i>=j; i--)
{
if (b%2==1)
liste.set(i,(byte) 1);
b = (byte) (b/2);
}
j+=8;
}
return liste;
}
public static void main(String args[])
{
for (byte b : convert("CCM"))
System.out.print(b); // 010000110100001101001101
}
}