2012-06-26 16 views
12

क्या byte को BitArray में परिवर्तित करने के लिए कोई पूर्वनिर्धारित फ़ंक्शन उपलब्ध है?सी # बाइट को बिटरएरे में कनवर्ट करना

एक तरीका byte मान के हर बिट का निरीक्षण करना होगा और फिर bitwise ऑपरेशन करें। मैं सोच रहा था कि क्या ऐसा कोई तरीका है जो इससे अधिक सरल है।

+0

आपको अपना प्रश्न दोबारा शुरू करना चाहिए। क्या आप बाइट या बाइट सरणी को System.Collections.BitArray में कनवर्ट करना चाहते हैं? – adatapost

+0

मेरी सटीक स्थिति एक बाइट ऐरे से 3 बाइट्स को कनवर्ट करना है। नीचे वर्णित विधि मेरे लिए काम करेगी। –

उत्तर

28

हाँ, वर्णित here के रूप में उपयुक्त BitArray() constructor का उपयोग कर:

var bits = new BitArray(arrayOfBytes); 

आप एक बाइट की एक सरणी बनाने के लिए new BitArray(new byte[] { yourBite }) साथ यह कह सकते हैं।

+0

एक समय में लगभग तीन बाइट्स, कुछ ऐसा कहें: नया बिटाएरे (नया बाइट [] {myBite1, myBite2, myBite2}) –

+5

@ शिमिमहाफिज आप इसे कैसे आजमाते हैं? ;-) यह काम करना चाहिए। – CodeCaster

7

आप एक बाइट संख्या या यहां तक ​​कि एक पूर्णांक, आदि अगर

BitArray myBA = new BitArray(BitConverter.GetBytes(myNumber).ToArray()); 

नोट: यदि आप System.Linq के लिए एक संदर्भ की जरूरत है

2

समाधान, सरल है सिर्फ दो निर्देश (जिसमें चिह्नित कर रहे हैं निम्नलिखित कोड), Convert.ToString(btindx,2) का उपयोग करके बाइट को बाइनरी में कनवर्ट करें, परिणामस्वरूप स्ट्रिंग को 8 बिट्स (या लंबाई 8), strBin.PadLeft(8,'0'); पर परिणामी स्ट्रिंग को घुमाएं और अपने बाइट सरणी की थोड़ी स्ट्रीम बनाने के लिए सभी बाइनरी स्ट्रिंग्स को संयोजित करें, यदि आप चाहें, तो आप भी फॉर्म बना सकते हैं प्रत्येक बाइट के द्विआधारी प्रतिनिधित्व को अलग करने के लिए तारों की एक सरणी।

byte[] bt = new byte[2] {1,2}; 

    string strBin =string.Empty; 
    byte btindx = 0; 
    string strAllbin = string.Empty; 

    for (int i = 0; i < bt.Length; i++) 
    { 
     btindx = bt[i]; 

     strBin = Convert.ToString(btindx,2); // Convert from Byte to Bin 
     strBin = strBin.PadLeft(8,'0'); // Zero Pad 

     strAllbin += strBin; 
    } 
संबंधित मुद्दे