बाइट को बाइनरी स्ट्रिंग में c#में बदलना




string binary (3)

सी # में मैं byte को binary में परिवर्तित कर रहा हूं, वास्तविक उत्तर 00111111 लेकिन जो परिणाम दिया जा रहा है वह 111111 । अब मुझे वास्तव में सामने वाले 2 0 को भी प्रदर्शित करने की आवश्यकता है। क्या कोई मुझे बता सकता है कि इसे कैसे करना है?

मै इस्तेमाल कर रहा हूँ:

Convert.ToString(byteArray[20],2)

और बाइट का मूल्य 63 है


अगर मैं सही तरीके से समझूं, तो आपके पास 20 मान हैं, जिन्हें आप कनवर्ट करना चाहते हैं, इसलिए यह आपके द्वारा लिखे गए टोपी का सिर्फ एक साधारण बदलाव है।

सिंगल बाइट को 8 चार स्ट्रिंग में बदलने के लिए: Convert.ToString( x, 2 ).PadLeft( 8, '0' )

पूर्ण सरणी बदलने के लिए:

byte[] a = new byte[] { 1, 10, 100, 255, 200, 20, 2 };
string[] b = a.Select( x => Convert.ToString( x, 2 ).PadLeft( 8, '0' ) ).ToArray();
// Returns array:
// 00000010
// 00010100
// 11001000
// 11111111
// 01100100
// 00001010
// 00000001

अपने बाइट सरणी को सिंगल स्ट्रिंग में बदलने के लिए, बाइट्स को अंतरिक्ष के साथ अलग किया जाता है:

byte[] a = new byte[] { 1, 10, 100, 255, 200, 20, 2 };
string s = string.Join( " ",
    a.Select( x => Convert.ToString( x, 2 ).PadLeft( 8, '0' ) ) );
// Returns: 00000001 00001010 01100100 11111111 11001000 00010100 00000010

यदि बाइट्स का ऑर्डर करना गलत है तो IEnumerable.Reverse() उपयोग करें:

byte[] a = new byte[] { 1, 10, 100, 255, 200, 20, 2 };
string s = string.Join( " ",
    a.Reverse().Select( x => Convert.ToString( x, 2 ).PadLeft( 8, '0' ) ) );
// Returns: 00000010 00010100 11001000 11111111 01100100 00001010 00000001

इसको आजमाओ

public static string ByteArrayToString(byte[] ba)
    {
        StringBuilder hex = new StringBuilder(ba.Length * 2);
        foreach (byte b in ba)
            hex.AppendFormat("{0:x2}", b);
        return hex.ToString();
    }

बस अपना कोड बदलें:

string yourByteString = Convert.ToString(byteArray[20], 2).PadLeft(8, '0');
// produces "00111111"





byte