How to convert binary to string?

40,227

Solution 1

static string ConvertBinaryToText(List<List<int>> seq){
    return new String(seq.Select(s => (char)s.Aggregate( (a,b) => a*2+b )).ToArray());
}

static void Main(){
   string s = "stackoverflow";
   var binary = new List<List<int>>();
   for(var counter=0; counter!=s.Length; counter++){
       List<int> a = ConvertTextToBinary(s[counter], 2);
       binary.Add(a);
       foreach(var bit in a){
           Console.Write(bit);
       }
       Console.Write("\n");
   }
   string str = ConvertBinaryToText(binary);
   Console.WriteLine(str);//stackoverflow
}

Solution 2

for convert byte[] to string

byte[] bytes ;
string base64Data = Convert.ToBase64String (bytes);

or

string strData = Encoding.Default.GetString(bytes); 

Solution 3

You can convert a single bit-set to a character as follows:

int[] h = { 1, 1, 0, 1, 0, 0, 0 };
int result = 0;
int bitValue = 1;

for (int i = h.Length - 1; i >= 0 ; i--)
{
    result += h[i] * bitValue;
    bitValue *= 2;
}

Console.WriteLine((char)result);

Each bit corresponds to a multiple of 2. By starting at the last bit and multiplying the bit value by two, you get the result you want.

Share:
40,227
Desire
Author by

Desire

Updated on April 11, 2020

Comments

  • Desire
    Desire about 4 years
    static List<int> ConvertTextToBinary(int number, int Base)
    {
        List<int> list = new List<int>();
        while (number!=0)
        {
            list.Add(number % Base);
            number = number / Base;
        }
        list.Reverse();
        return list;
    }
    
    
    
    static void Main(string[] args)
    {
    
       string s = "stackoverflow";
       int counter=0;
       while (counter!=s.Length)
       {
           int[] a = ConvertTextToBinary(s[counter], 2).ToArray();
           for (int i = 0; i < a.Length; i++)
           {
               Console.Write(a[i]);
           }
           Console.Write("\n");
           counter++;
       }
    }
    

    I wrote a method to convert string to binary, its working fine. But now I want to convert binary to string eg: 1101000 is equal to h.