3. 單精確度浮點二進制值轉換為十進制實數值系統

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

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

        private void button3_Click(object sender, EventArgs e)
        {
            var neg = textBox1.Text == "1";
            int n = (int)Math.Pow(2, Convert.ToInt16(textBox2.Text, 2) - 127);
            double k = 1;
            for (int i = 0; i < textBox3.Text.Length; i++)
            {
                k += ((double)(textBox3.Text[i] - '0')) / Math.Pow(2, i + 1);
            }
            k *= n;
            if (neg) k *= -1;
            if (k == 0) k = 0;
            textBox4.Text = $"{k:0.##########}";
        }

        private void button2_Click(object sender, EventArgs e)
        {
            var rd = new Random();
            textBox1.Text = rd.Next(2).ToString();

            string b2 = "";
            for (int i = 0; i < 8; i++) b2 += rd.Next(2);
            textBox2.Text = b2;

            b2 = "";
            for (int i = 0; i < "01000011110000000000000".Length; i++) b2 += rd.Next(2);
            textBox3.Text = b2;

            textBox4.Clear();
        }
    }
}

Last updated