C#进制之间的转换问题

来源:百度知道 编辑:UC知道 时间:2024/06/21 14:51:14
我是初学者,下面的代码是C#中有关进制转换的,各位大虾能不能帮小弟解释一下啊,最好能详细解释一下每一行,要不我看不懂啊,多谢了
int[] temp = new int[20];
string binary;
int val = 0, i = 0, j;

try
{
val = Convert.ToInt32(System.Convert.ToDouble(textshow.Text));
}
catch
{
val = 0;
}

if (val == 0)
{
textshow.Text = val.ToString();
}

i = 0;
while (val != 0)
{
temp[i++] = val % 2;
val /= 2;
}

binary = "";
for (j = 0; j <= i - 1; j++)
binary += (char)(temp[i - j - 1] + 48);

还有就是最后一行中为什么是binary +=......
改成binary =.......不可以吗?小弟在这多谢各位了
对了,还有最后一句中后面+48是

你这里有很多写法上的问题,如果是我写的话,会这样
/变量在使用之前定义,并初始化
//这是避免未初始化就使用的情况出现

//将Text文本转换成int值,保存为val
int val = 0;
try
{
val = Convert.ToInt32(textshow.Text);
}
catch
{
//转换失败(文本不是数值类型)
//val设为0
//文本框的文本也设成0
val = 0;
textshow.Text = val.ToString();
//如果val值为0,后面的操作没有任何意义
return;
}

//不要用数组,用List
//因为不知道输入的数值为多大,有可能越界
List<int> temp = new List<int>();
while (val != 0)
{
//任何一个整数余2,无非两种可能0或者1
//所以在temp这个list中存在的都是0或者
temp.Add(val%2);
val /= 2;
}

string bi