不知道为什么会显示超出范围
在学习了仅一学期的c但好像没懂什么后
我们又当上了学校本专业(电信)第一批要上c#的小白鼠
这c# teacher也真不行,上课声音小的要s,内容讲的飞快,讲这个函数时候就讲了没几分钟,事例,原理什么的都不清楚。这次实验任务是完成十进制和二进制互相转换
这只是我上的第三节c#啊,而且专业也不对口
言归正传这个错误的原因是什么,这个函数又具体该怎么运用什么原理
应该是s2不是s1
十进制转2进制
/// <summary>
/// 将值转为2进制字符串
/// </summary>
/// <param name="value">要转换的值</param>
/// <param name="Take">保留值的位数</param>
/// <returns>16进制字符串</returns>
public static string ToString2(int value, int Take = 8)
{
//Convert.ToString(value, 2)同时支持转2,8,10,16进制
return Convert.ToString(value, 2).PadLeft(Take, '0');
}
2进制转10进制
var IntNumber = Convert.ToInt32("1111", 2);//1111是二进制字符串,这个方法同时支持2,8,10,16进制转10进制
观察你的代码应该是想让用户输入01最后输入然后将2进制转10进制
完整代码如下
Console.WriteLine("请输入2进制数,按B结束");
while (true)
{
var value = Console.ReadLine();
if (value == "B")
{
break;
}
try
{
var IntNumber = Convert.ToInt32(value, 2);
Console.WriteLine(string.Format("二进制[{0}]转十进制后[{1}]", value, IntNumber));
}
catch (Exception)
{
Console.WriteLine("不是2进制数");
}
}
Console.WriteLine("按下任意键结束");
Console.ReadKey();