2009-07-17 18 views
5

Bitpacked iletileri işleyen TCP tabanlı bir uygulama üzerinde çalışıyorum, yani: İletilen/alınan mesajlar bayt hizalanmış değil. Örneğin, 3 bit, 19 biti alan 2'yi temsil edebilen alan 1'i temsil eder. Sorum şu; bir bayt kümesi alabilen ve bu baytlar içinde rastgele bir bit aralığını ayarlayabilen/alabilen bir C# kitaplığı bilen var mı? Ben C/C++ içinde & benzer araçlar oluşturuldu gördüm ama% 100 C# çözüm gerekiyor ve ben yeniden yeniden icat etmek istemiyorum.C# ile bit yüklü verileri yönetme #

BitArray sınıfına baktım, ancak bitlerin rasgele aralıklarını referans göstermeye izin vermiyor.

cevap

2

Ne istediğinizi sağlayan herhangi bir bcl sınıfının farkında değilim. Ancak ilgi alanlarınızı çıkarmak için bitsel işlemleri (shift, ve, veya ...) kullanabilirsiniz. Örneğin

, kullandığınız bir alan 5 bit boyutunda bit 2 başlayan almak için:

int extract = (source & 0x7C) >> 2; 
+0

Geçerli C++ uygulamalarında kullanıyorum yöntem budur. Uygulamayı C# 'ye getirmek zorunda kalmadığımı ve 3. parti kütüphanesi kullanabileceğimi umuyordum. Bunu gerçekleştirmek için biraz kaygan C# kütüphanesiyle ilgileniyorum. Sadece "tekerleği yeniden icat etmek" istemedim. – nathan

İlgili konular