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); } }
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); }