C#进制之间的转换问题
来源:百度知道 编辑:UC知道 时间:2024/06/21 14:51:14
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