20 Aralık 2009, Pazar
Bayt dizisi (Java)tamsayı dönüştürmek
Java bunu yapmak için varsayılan bir yol sağlamaz beri
Bayt Dizisine bir Tamsayı dönüştürmek için hızlı yolu nedir?
= örneğin 0xAABBCCDD>{AA, BB, CC, DD}
CEVAP
20 Aralık 2009, Pazar
ByteBuffer sınıfı bir bak.
ByteBuffer b = ByteBuffer.allocate(4);
//b.order(ByteOrder.BIG_ENDIAN); // optional, the initial order of a byte buffer is always BIG_ENDIAN.
b.putInt(0xAABBCCDD);
byte[] result = b.array();
Bayt sırası ayarı sağlar result[0] == 0xAA
, result[1] == 0xBB
, result[2] == 0xCC
ve result[3] == 0xDD
.
Veya alternatif olarak, el ile yapabilirsiniz:
byte[] toBytes(int i)
{
byte[] result = new byte[4];
result[0] = (byte) (i >> 24);
result[1] = (byte) (i >> 16);
result[2] = (byte) (i >> 8);
result[3] = (byte) (i /*>> 0*/);
return result;
}
ByteBuffer
sınıfı bu kirli eller görevler için dizayn edildi. Aslında java.nio.Bits
özel ByteBuffer.putInt()
tarafından kullanılan bu yardımcı yöntemler tanımlar:
private static byte int3(int x) { return (byte)(x >> 24); }
private static byte int2(int x) { return (byte)(x >> 16); }
private static byte int1(int x) { return (byte)(x >> 8); }
private static byte int0(int x) { return (byte)(x >> 0); }
Bunu Paylaş:
Bir bayt dizisi java tamsayı veya bunu...
İnputStream Java bayt dizisi dönüştürm...
Nasıl Java hex bir dize bir bayt dizis...
Bir bayt dizisi Java kullanarak bir he...
Java bir İnputStream içine bir bayt di...