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 un
int code> au lieu de la portée de -2,1 milliards à 2,1 milliards.