我目前正在建立一个C#winform应用程序来转换来自三个文本框,一个十进制,一个十六进制和一个二进制文本的输入。所以你应该在十进制文本框中输入你的十进制数,等价的十六进制和二进制数将出现在它们各自的文本框中。以下是我用于转换的十进制和十六进制文本框的代码。C#System.OverflowException二进制到十进制和十六进制转换
private void textBox1_TextChanged(object sender, EventArgs e)
{
//conversion to hex and binary for the other texbox's
if (button20WasClicked == false) {
long x = Int64.Parse(textBox1.Text);
textBox2.Text = Convert.ToString(x,16).ToUpper();
long y = Int64.Parse(textBox1.Text);
textBox3.Text = Convert.ToString(y,2);
}
else
{
}
button20WasClicked = false;
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
if (button20WasClicked == false)
{
long x = Int64.Parse(textBox2.Text, System.Globalization.NumberStyles.HexNumber);
textBox1.Text = Convert.ToString(x, 10);
long y = Int64.Parse(textBox2.Text, System.Globalization.NumberStyles.HexNumber);
textBox3.Text = Convert.ToString(y, 2);
}
else
{
}
button20WasClicked = false;
}
现在这些工作就像一个梦想转换十进制为十六进制和二进制(textBox1中)和十六进制为十进制,二进制(TextBox2中),但是当我尝试对文本框类似的方法对输入查询二进制转换为十进制,十六进制我一直得到一个溢出异常是未处理的错误,对于Int 64来说,值或者太大或者太小。我尝试改变为其他大小的变量,但是得到相同的错误。我可以在互联网上找到的所有东西都表明,我正处于这个.Convert方法的正确轨道上,但却无法获得任何工作。这是导致错误的最终文本框的代码。
private void textBox3_TextChanged_1(object sender, EventArgs e)
{
if (button20WasClicked == false)
{
long x = Int64.Parse(textBox3.Text);
textBox1.Text = Convert.ToString(x, 10);
long y = Int64.Parse(textBox3.Text);
textBox2.Text = Convert.ToString(y, 16);
}
else
{
}
button20WasClicked = false;
}
任何帮助赞赏,因为我一直在这个问题上工作了两天了。
Int64.Parse不知道输入的是二进制的,因此。 –