SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BaaaStuds's channel

    BaaaStuds's

    10 Mart 2009
  • ghosti66

    ghosti66

    27 AĞUSTOS 2006
  • New Scientist

    New Scientis

    27 Kasım 2006