2010-06-30 17 views
12

Değerlerim 0 ile maksimum değerin arasında olan bir kısa dizim var. Verileri (TYPE_USHORT olarak gösterecek şekilde) ölçeklendiririm, böylece elde edilen kısa değerler 0 ile 65535 arasındadır. Ölçeklenmiş değerlerden bazılarını yazdırmam gerekir ama nasıl olduğunu anlayamıyorum. Veriler bir dizide ve BufferedImage'da.Java'da imzasız bir kısa olarak nasıl kısa yazdırırım

+0

Jim, sonunda kendim için anladım ve yayınlanmıştır cevap ben yine de kabul ederim, ne istediğini değildi bundan önce soru? Verilerin hem kısa hem de Tamponlu görüntüde olduğunu söylemeliydim. Teşekkürler –

cevap

23

en basit yolu, int dönüştürülmesidir:

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

bit maskesi dönüşüm aralığı 0-65535 yerine -32768-32767 bir değer elde yapmaktır.

+0

Teşekkürler, bu doğru görünüyor! –

13

Java 1.8 beri aynı Short.toUnsignedInt ile yapılabilir:

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

Ne fark bir zaman yapar. –