Conversion chaine, caractère par caractère, en binaire
Bonjour,
je veux convertir une chaine, caractère par caractère, en binaire, j'ai trouvé ce code qui fonctionne mais j'arrive pas à le comprendre car j'ai d'autres besoins à intégrer.
quelqu'un peut m'aider?
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| String s = "foo";
byte[] bytes = s.getBytes();
StringBuilder binary = new StringBuilder();
for (byte b : bytes) {
int val = b;
for (int i = 0; i < 8; i++) {
binary.append((val & 128) == 0 ? 0 : 1);
val <<= 1;
}
binary.append(' ');
}
System.out.println("'" + s + "' to binary: " + binary); |
Conversion chaine, caractère par caractère, en binaire
Bonjour,
merci pour l'effort mais je n'ai pas bien compris
Code:
1 2 3 4 5 6
| binary.append((val & 128) == 0 ? 0 : 1); //"&" bit à bit entre ton octet et 128 (10000000)
=> renvoi donc la valeur de l'octet de poid fort (le plus a gauche) : 0 ou 1. Met cette valeur dans le String "binary".
val <<= 1; //Décale tous les bits d'un cran vers la gauche
=> ainsi au prochain tour de boucle ça sera le bit suivant qui sortira |
et je v me casser la tête en lisant la documentation sur ces opérateurs.
Entre temps, avez vous une autre solution pour ce besoin de conversion?
Conversion chaine, caractère par caractère, en binaire
merci à vous aussi pour l'éclaircissement