private void btnConvert_Click(object sender, EventArgs e)
        {
            try
            {
                if (tbxDecInput.BackColor == Color.Red)
                {
                    throw new Exception("Invalid Decimal Input");
                }
                else
                {
                    double y = double.Parse(tbxDecInput.Text);

                    int s = 0;

                    if (y < 0)
                    {
                        s = 1;
                    }
                    else
                    {
                        s = 0;
                    }

                    double z = Math.Abs(y);

                    double p = Math.Floor((Math.Log10(z)) / (Math.Log10(2)));

                    double twoPowerTwentyThreeMinusP = Math.Pow(2, (23 - p));

                    long j = (long)Math.Round(z * twoPowerTwentyThreeMinusP);

                    HexEngine dec2Hex = new HexEngine(j.ToString(), Bases.bases.DEC);

                    string dec2HexString = dec2Hex.ConvertFromDec();

                    BinaryEngine hex2Bin = new BinaryEngine(dec2HexString, Bases.bases.HEX);

                    string hex2BinString = hex2Bin.ConvertFromHex();

                    string significandString = hex2BinString.Substring(1);

                    BinaryEngine dec2Bin_for_Exponent = new BinaryEngine((127 + p).ToString(), Bases.bases.DEC);
                    string       exponentString       = dec2Bin_for_Exponent.ConvertFromDecimal();

                    lblSign.Text        = s.ToString();
                    lblExponent.Text    = exponentString;
                    lblSignificand.Text = significandString;
                    lblHEX.Text         = new HexEngine(lblSign.Text + lblExponent.Text + lblSignificand.Text, Bases.bases.BIN).convertFromBinary();

                    lblAnsHEX.Text = dec2HexString;
                    lblAnsBin.Text = hex2BinString;
                }
            }

            catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }
示例#2
0
        public string  convertFromBinary()
        {
            DecimalEngine dEngine = new DecimalEngine(inputString, Bases.bases.BIN);

            HexEngine hEngine        = new HexEngine(dEngine.ConvertFromBinary(), Bases.bases.DEC);
            string    hexFromDecimal = hEngine.ConvertFromDec();

            return(hexFromDecimal);
        }