1. 0-1 變動長度編碼系統

namespace WinFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            var x = "";
            for (int i = 0; i < 40; i++)
            {
                x += new Random().Next(2);
            }
            textBox1.Text = x;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var t = textBox1.Text;
            var n = 0;
            var k = "";
            for (int i = 0; i < t.Length; i++)
            {
                if (t[i] == '1')
                {
                    k += Convert.ToString(n, 2) + " ";
                    n = 0;
                }
                else n++;
            }
if(n!=0)            k += Convert.ToString(n, 2) + " ";
            if (k.EndsWith(" ")) k=k.Substring(0, k.Length - 1);
            od.Text = k;

            label5.Text = $"{(double)k.Length/t.Length*100:f1}%";
        }
    }
}

Last updated