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
12
A
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. –
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 –