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.
Author by
Desire
Updated on April 11, 2020Comments
-
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.