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++;
}
}
Run Code Online (Sandbox Code Playgroud)
我写了一个将字符串转换为二进制的方法,它工作正常。但现在我想将二进制转换为字符串,例如:1101000 等于 h。
用于将字节 [] 转换为字符串
byte[] bytes ;
string base64Data = Convert.ToBase64String (bytes);
Run Code Online (Sandbox Code Playgroud)
或者
string strData = Encoding.Default.GetString(bytes);
Run Code Online (Sandbox Code Playgroud)
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
}
Run Code Online (Sandbox Code Playgroud)