c# - बाइट टू बाइनरी स्ट्रिंग सी#- सभी 8 अंक प्रदर्शित करें




.net string (3)

आप इसे कैसे करते हैं यह इस बात पर निर्भर करता है कि आप अपने आउटपुट को कैसे देखना चाहते हैं।

यदि आप "00011011" चाहते हैं, तो इस तरह से एक फंक्शन का उपयोग करें:

static string Pad(byte b)
{
    return Convert.ToString(b, 2).PadLeft(8, '0');
}

यदि आप "000 11011 " जैसे आउटपुट चाहते हैं, तो इस तरह से फंक्शन का उपयोग करें:

static string PadBold(byte b)
{
    string bin = Convert.ToString(b, 2);
    return new string('0', 8 - bin.Length) + "<b>" + bin + "</b>";
}

यदि आप "0001 1011" जैसे आउटपुट चाहते हैं, तो इस तरह का एक फ़ंक्शन बेहतर हो सकता है:

static string PadNibble(byte b)
{
    return Int32.Parse(Convert.ToString(b, 2)).ToString("0000 0000");
}

मैं टेक्स्टबॉक्स में एक बाइट प्रदर्शित करना चाहता हूं। अब मैं उपयोग कर रहा हूं:

Convert.ToString(MyVeryOwnByte, 2);

लेकिन जब बाइट में 0 होता है तो भीख मांगने पर उन 0 को काट दिया जाता है। उदाहरण:

MyVeryOwnByte = 00001110 // Texbox shows -> 1110
MyVeryOwnByte = 01010101 // Texbox shows -> 1010101
MyVeryOwnByte = 00000000 // Texbox shows -> <Empty>
MyVeryOwnByte = 00000001 // Texbox shows -> 1

मैं सभी 8 अंक प्रदर्शित करना चाहता हूं।


आप एक एक्सटेंशन विधि बना सकते हैं:

public static class ByteExtension
{
    public static string ToBitsString(this byte value)
    {
        return Convert.ToString(value, 2).PadLeft(8, '0');
    }
}

Convert.ToString(MyVeryOwnByte, 2).PadLeft(8, '0');

यह स्ट्रिंग में कुल 8 वर्णों के लिए बाईं ओर के रिक्त स्थान को '0' से भर देगा





bits