Je vais avoir une petite erreur dans mon code que je ne peux pas pour la vie de moi.
J'ai une gamme de chaînes qui représentent des données binaires (après les convertir de Hex), par exemple:
Un indice est 1011 et un autre est de 11100. Je passe par le tableau et le pad de chaque index avec 0 de manière à ce que chaque indice soit huit octets. Lorsque j'essaie de convertir ces représentations en octets réels, je reçois une erreur lorsque j'essaie d'analyser "11111111" L'erreur que je reçois est: p> Voici un extrait: p>
3 Réponses :
n'est pas le problème ici que Au fait, vous n'avez pas à renvoyer le numéro avec des zéros non plus. p>
Une fois que vous avez analysé votre chaîne binaire dans un int, vous pouvez la jeter à un octet, mais la valeur sera toujours traitée comme signée, donc octet code> est un type signé, ses valeurs valides sont donc de -128 ... 127? Si vous l'analysez comme un int code> (en utilisant integer.parseint () code>), il devrait fonctionner. P>
binaire 11111111 code> deviendra int 255 Code> Tout d'abord, puis octet -1 code> après la distribution. P>
Eh bien, huit son est 255, et selon Java.Lang.Byte, le max_value est 2 ^ 7 - 1 ou positif 127. P>
Donc, votre code échouera parce que votre numéro est trop grand. Le premier bit est réservé au panneau positif et négatif. P>
Selon Paysbyte P>
octet code> ne permet que les numéros de la plage de -128 à 127. J'utiliserais un int code> à la place, qui détient des nombres compris entre -2,1 milliard de 2,1 milliards. P>
Byte Code> S uniquement autoriser les numéros de la plage de -128 à 127. J'utiliserais unint code> au lieu de la portée de -2,1 milliards à 2,1 milliards.