SORU
23 AĞUSTOS 2009, Pazar


C bayt# int[]

byte[] int Bir çok dönüştürmek için ihtiyacınız varsa BitConverter.GetBytes() kullanabilirim. Ama eğer bu takip etmeliyim:

S imzalı bir tamsayı bir tamsayı kodlar 32-bit veri. aralığı [-2147483648,2147483647]. Tamsayı temsil edilmektedir iki gösterim tamamlayacak. En çok ve en az önemli bayt Ve 3, sırasıyla 0. Tam sayılar aşağıdaki gibi bildirilir

Kaynak: RFC1014 3.2

Ne yöntemi bu yöntem ise yok o zaman kullanmalıyım? Nasıl kendi yazarsanız benzer miydi?

Kendim uygulamak istemiyorum çünkü metin 100% anlamıyorum.

CEVAP
23 AĞUSTOS 2009, Pazar


RFC sadece imzalı bir tamsayı bayt büyük indian bir şekilde sipariş ile 4 baytlık bir tamsayı normal olduğunu söylemeye çalışıyorum.

Şimdi, muhtemelen en az indian bir makine üzerinde çalışıyoruz ve BitConverter.GetBytes() byte[] ters verecektir. Deneyebilirsiniz:

int intValue;
byte[] intBytes = BitConverter.GetBytes(intValue);
Array.Reverse(intBytes);
byte[] result = intBytes;

En taşınabilir olması için kod için ancak böyle olabilir

int intValue;
byte[] intBytes = BitConverter.GetBytes(intValue);
if (BitConverter.IsLittleEndian)
    Array.Reverse(intBytes);
byte[] result = intBytes;

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FF Radio

    FF Radio

    16 Mayıs 2008
  • iNCH

    iNCH

    20 Temmuz 2009
  • Sergio Lafuente Rubio

    Sergio Lafue

    11 Aralık 2008