SORU
22 HAZİRAN 2009, PAZARTESİ


Nasıl sayısal değeri (Java) için bir bayt dizisi dönüştürmek için?

8 bayt bir dizi var ve karşılık gelen sayısal değeri dönüştürmek istiyorum.

örneğin

byte[] by = new byte[8];  // the byte array is stored in 'by'

// CONVERSION OPERATION
// return the numeric value

Yukarıda dönüştürme işlemi gerçekleştirecek bir yöntem istiyorum.

CEVAP
22 HAZİRAN 2009, PAZARTESİ


İlk bayt varsayarak en az önemli bayt:

long value = 0;
for (int i = 0; i < by.length; i  )
{
   value  = ((long) by[i] & 0xffL) << (8 * i);
}

İlk ve en önemli bayt, sonra biraz daha farklı

long value = 0;
for (int i = 0; i < by.length; i  )
{
   value = (value << 8)   (by[i] & 0xff);
}

Eğer 8'den fazla bayt varsa uzun BigInteger ile değiştirin.

Aaron sayesinde hatalarımı düzeltme için Digulla.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Derek Banas

    Derek Banas

    12 AĞUSTOS 2008
  • Jordie Jordan

    Jordie Jorda

    27 Ocak 2008
  • Soulkiller13 ツ

    Soulkiller13

    30 Mayıs 2013