我目前正在建立一個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不知道輸入的是二進制的,因此。 –