Les byte sont signés en Java! (valeur de -128 à 127 et non de 0 à 255).
Si tu veux afficher les bytes selon l'interprétation non signée, il faut afficher: (byteX & 255) pour tronquer les bits du signe négatif.
Sinon un "byte" n'est pas un bit. le résultat de ~0 est -1 (et non 1). Si tu veux ne garder qu'un seul bit, il faut utiliser: (~byteX)&1 et non (~byteX) seulement... Mais tu peux masquer ces bits en excédent dans le résultat de ton println uniquement sans modifier ta fonction de "calcul".
Message édité par verdy_p le 01-02-2008 à 18:04:50