Greg's Devblog Par un développeur, pour les développeurs

26sept/105

Unsigned Byte en Java ?

java

L'autre jour, j'ai eu besoin de lire un tableau d'octets qui étaient en non signés... On converti donc les données en bytearray Java qui va bien, et là, quand j'affiche les valeurs : -86, -126, etc... Et oui, en Java un byte est signé ! Et sauf erreur de ma part (après quelques courtes recherches), pas moyen d'avoir de bytes non signés...

La solution existe pourtant, mais je ne la trouve ni élégante, ni pratique : il suffit d'utiliser :

bytearray[i]&0xFF

En effet, pour les opérations les bytes sont castés en int, et avec le ET binaire, on récupère une valeur entre 0 et 255. Du coup ça marche super... Mais ça reste un poil lourd, car au lieu d'avoir un vrai beau type, partout où on veut utiliser des octets non signés, il faut faire cette manip...

Commentaires (5) Trackbacks (0)
  1. Je n’ai pas eu plus de succès quand j’ai demandé à mes étudiants de faire du BitTorrent en Java. Manipuler des fichiers (ou des données de manière générale) binaires dans ce langage est une vraie plaie. Pas surprenant qu’XML ait eu tant de succès :(


Laisser un commentaire


Aucun trackbacks pour l'instant