Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 二进制到字符串/字符串到二进制_C# - Fatal编程技术网

C# 二进制到字符串/字符串到二进制

C# 二进制到字符串/字符串到二进制,c#,C#,我想把文本转换成二进制,然后再把二进制转换成字符串文本。 如果已经是字符串,如何将tobin转换回文本 private void iTalk_Button_12_Click(object sender, EventArgs e) { ambiance_RichTextBox2.Text = tobin(ambiance_RichTextBox1.Text); } public string tobin(string inp) {

我想把文本转换成二进制,然后再把二进制转换成字符串文本。 如果已经是字符串,如何将
tobin
转换回文本

  private void iTalk_Button_12_Click(object sender, EventArgs e)
    {

        ambiance_RichTextBox2.Text = tobin(ambiance_RichTextBox1.Text);

    }
    public string tobin(string inp)
    {
        StringBuilder sb = new StringBuilder();
        foreach (char L in inp.ToCharArray())
        {
            sb.Append(Convert.ToString(L, 2).PadLeft(8, '0'));
        }
        return sb.ToString();
    }

你可以这样用

public static string BinaryToString(string data)
{
List<Byte> byteList = new List<Byte>();

for (int i = 0; i < data.Length; i += 8)
{
 byteList.Add(Convert.ToByte(data.Substring(i, 8), 2));
}

return Encoding.ASCII.GetString(byteList.ToArray());
}
公共静态字符串二进制字符串(字符串数据)
{
List byteList=新列表();
对于(int i=0;i
将字符串转换为二进制

将二进制文件转换为字符串


当前,您正在将字符(可以表示为数字)转换为二进制表示(该数字是ASCII数字)。但如果您想将字符串转换为二进制,则应使用编码。编码决定如何将文本转换为二进制

例如:

static void Main(string[] args)
{
    string input = "This is an example text.";

    Console.WriteLine(input);
    string asBin = ToBinary(input);
    Console.WriteLine(asBin);
    string asText = ToText(asBin);
    Console.WriteLine(asText);
}

static string ToBinary(string input, System.Text.Encoding encoding = null)
{
    if (encoding == null)
        encoding = System.Text.Encoding.UTF8;

    var builder = new System.Text.StringBuilder();
    var bytes = encoding.GetBytes(input); // Convert the text to bytes using the encoding

    foreach (var b in bytes)
        builder.Append(Convert.ToString(b, 2).PadLeft(8, '0')); //Convert the byte to its binary representation

    return builder.ToString();
}

static string ToText(string bytes, System.Text.Encoding encoding = null)
{
    if (encoding == null)
        encoding = System.Text.Encoding.UTF8;

    var byteCount = 8;
    var byteArray = new byte[bytes.Length / 8]; // An array for the bytes
    for (int i = 0; i < bytes.Length / byteCount; i++)
    {
        var subBytes = bytes.Substring(i * byteCount, byteCount); // Get a subpart of 8 bits
        var b = Convert.ToByte(subBytes.TrimStart('0'), 2); // Convert the subpart to a byte
        byteArray[i] = b; // Add the byte to the array
    }

    return encoding.GetString(byteArray); // Convert the array to text using the right encoding.
}
将字符串转换为二进制:

        public static string StringToBinary(string data)
        {
            StringBuilder sb = new StringBuilder();

            foreach (char c in data.ToCharArray())
            {
                sb.Append(Convert.ToString(c, 2).PadLeft(8, '0'));
            }
            return sb.ToString();
        }
将二进制文件转换为字符串:

        public static string BinaryToString(string data)
        {
            List<Byte> byteList = new List<Byte>();

            for (int i = 0; i < data.Length; i += 8)
            {
                byteList.Add(Convert.ToByte(data.Substring(i, 8), 2));
            }

            return Encoding.ASCII.GetString(byteList.ToArray());
        }
公共静态字符串二进制字符串(字符串数据)
{
List byteList=新列表();
对于(int i=0;i

祝你好运

哦,将字符串转换为二进制的部分在哪里?您可以参考此链接。如何在我的richTextBox中显示byte[]arr?此-ambiance_RichTextBox2.Text=arr.ToString();只给我System.Byte[]message.string s=“hai”;byte[]arr=System.Text.Encoding.ASCII.GetBytes;richTextBox1.Text=Encoding.UTF8.GetString(arr);
Console.WriteLine(input);
string asBin = ToBinary(input, System.Text.Encoding.ASCII);
Console.WriteLine(asBin);
string asText = ToText(asBin, System.Text.Encoding.ASCII);
Console.WriteLine(asText);
        private void iTalk_Button_12_Click(object sender, EventArgs e)
        {
            ambiance_RichTextBox2.Text = BinaryToString(ambiance_RichTextBox1.Text);
           //use what u need: BinaryToString or StringToBinary.
        }
        public static string StringToBinary(string data)
        {
            StringBuilder sb = new StringBuilder();

            foreach (char c in data.ToCharArray())
            {
                sb.Append(Convert.ToString(c, 2).PadLeft(8, '0'));
            }
            return sb.ToString();
        }
        public static string BinaryToString(string data)
        {
            List<Byte> byteList = new List<Byte>();

            for (int i = 0; i < data.Length; i += 8)
            {
                byteList.Add(Convert.ToByte(data.Substring(i, 8), 2));
            }

            return Encoding.ASCII.GetString(byteList.ToArray());
        }