Unsigned Byte en 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...
Aucun trackbacks pour l'instant
27 septembre 2010
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
27 septembre 2010
Je verrais bien tous les transferts du net se faire en XML :p Un bon petit paquet IP en XML, ça ferait quelle taille d’ailleurs ?
30 septembre 2010
ça dépend … tu veux ou l’approche « une balise par information
127.0.0.1…
30 septembre 2010
(argh. mes balises XML se sont fait bouffer)
1 octobre 2010
J’ai voulu corriger ton commentaire mais les balises ont été retirées tout court, désolé !