Comment faire pour convertir une représentation binaire d'une chaîne en octets en Java?
comme le dit le titre, comment dois-je faire? Il est facile de convertir de la chaîne -> octet -> chaîne binaire, Mais comment puis-je convertir à l'arrière? Ci-dessous est un exemple.
La sortie est :
'f' binaire: 01100110
294984
J'ai lu quelque part que je pouvais utiliser le Entier.parseInt mais clairement ce n'est pas le cas 🙁 Ou suis-je en train de faire quelque chose de mal?
Grâce,
🙂
public class main{
public static void main(String[] args) {
String s = "f";
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);
System.out.println(Integer.parseInt("01100110", 2));
}
}
Vous avez désespérément besoin de clarifier votre exigence.
OriginalL'auteur westberg | 2013-09-03
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
Octets.parseByte()
avec une base de 2:À l'aide de votre exemple:
(Bien que sur la re-lecture, il est impossible de le dire ce l'OP veut.)
Cela ne fonctionne pas pour les valeurs supérieures à
01111111
==127
comme Octet a une gamme de -128 à 127.Mais l'OP veut juste octets; relisez la question.
OriginalL'auteur arshajii
Vous pouvez convertir un nombre entier en base 2, et de le convertir en un tableau d'octets.
Dans votre exemple, vous avez de 16 bits, vous pouvez également utiliser les courts.
Juste au cas où si vous en avez besoin pour un
Very Big String.
OriginalL'auteur JNL
J'ai fait comme ça, converti en une chaîne de caractères s -> byte [], puis utilisé Entier.toBinaryString pour obtenir binaryStringRep. Je me suis converti bianryStringRep en utilisant Octet.parseByte pour obtenir le bianryStringRep en octets et de la Chaîne(newByte[]) pour obtenir le byte[] dans une Chaîne! Espérons que cela aide d'autres, alors moi aussi! ^^
OriginalL'auteur westberg