Convertir une chaîne binaire de tableau d'octets
J'ai une chaîne de uns et de zéros que je veux convertir un tableau d'octets.
Par exemple String b = "0110100001101001"
Comment puis-je convertir cette byte[]
de longueur 2?
- Pourquoi de longueur 2 ?
- il dispose de 16 bits...
- Basé hors de la chaîne b, vous voulez un byte[] de longueur 2 avec
104
en position 0, et105
en position 1? - double possible de convertir une chaîne en tableau d'octets
Vous devez vous connecter pour publier un commentaire.
De l'analyser pour un entier en base 2, puis de les convertir à un tableau d'octets. En fait, puisque vous avez de 16 bits, il est temps de sortir très rarement utilisé
short
.long
variable?NumberFormatException
. Je suis en train de faire des hypothèses qu'il est à moins de 32 caractères pour ce petit exemple.b
est dans un format non valide unNumberFormatException
seront jetés et c'est à celui qui est appelé à gérer l'erreur. Ouvert à toutes les suggestions sur la façon d'améliorer cette situation, mais je pense que c'est une réponse suffisante pour illustrer ce point.BigInteger
que l'autre réponse suggéré prendra soin de ce problème.Une autre approche simple est:
En supposant que votre Chaîne binaire peut être divisé par 8 sans obtenir un repos, vous pouvez utiliser la méthode suivante:
N'oubliez pas d'ajouter le goyave lib pour votre avec des dépendances.
Dans Android, vous devez l'ajouter à l'application gradle:
Et les ajouter dans le projet gradle:
Mise à jour de 1
Ce post contient une solution sans l'aide de Goyave Lib.