2010-06-30 4 views
12

J'ai un tableau de court dont les valeurs vont de 0 à la valeur maximale d'un court-circuit. Je redimensionne les données (pour les afficher sous la forme TYPE_USHORT) de sorte que les valeurs courtes résultantes soient comprises entre 0 et 65535. J'ai besoin d'imprimer certaines des valeurs mises à l'échelle, mais je n'arrive pas à comprendre comment. Les données sont dans un tableau et dans un BufferedImage.Comment imprimer un court-métrage en tant que short non signé en Java

+0

Jim, la question avant cela, je finalement compris pour moi-même et la réponse affichée était pas ce que je voulais, que je l'accepte quand même? J'aurais dû dire que les données sont à la fois dans un tableau de court et dans l'image Buffered. Merci –

Répondre

23

La façon la plus simple est de convertir en int:

short s = ...; 
int i = s & 0xffff; 

Le bitmask est de faire la conversion donne une valeur dans la gamme 0-65535 plutôt que de -32768 à 32767.

+0

Merci, cela semble être correct! –

13

Depuis Java 1.8, la même chose peut être fait avec Short.toUnsignedInt:

System.out.println("signed s=" + s + ", unsigned s=" + Short.toUnsignedInt(s)) 
+3

Quelle différence le temps fait. –

Questions connexes