2010-06-30 68 views
12

我有一個短數組,其值介於0和短路的最大值之間。我縮放數據(將其顯示爲TYPE_USHORT),以便生成的短值介於0和65535之間。我需要打印一些縮放值,但無法弄清楚。數據位於數組和BufferedImage中。如何在Java中打印短符號爲無符號短符號

+0

吉姆,這我終於想通了,爲自己和張貼的答案是不是我想要的,我無論如何接受它面前的問題? 我應該說,數據都是在一個簡短的數組中,並在緩衝的圖像。謝謝 – 2010-07-01 20:58:59

回答

23

最簡單的方法是轉換成int:

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

位掩碼是使轉換範圍爲0-65535,而不是-32768-32767給的值。

+0

謝謝,這看起來是正確的! – 2010-06-30 23:34:32

13

由於Java 1.8,同樣可以用Short.toUnsignedInt完成:

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

有什麼不同的時間。 – 2016-06-20 19:04:01