我尝试将数字转换为二进制数。所以这是我的代码:
static void Main(string[] args)
{
Console.WriteLine("Geben Sie eine Zahl ein, die convertiert werden soll!");
int a = Convert.ToInt16(Console.ReadLine());
string b = "";
while (a != 0)
{
if (a % 2 == 0)
{
b.Insert(b.Length, "0");
}
else
{
b.Insert(b.Length(), "1");
}
a = a / 2;
}
Console.WriteLine(b);
Console.ReadLine();
}
问题是,数字的顺序是错误的。所以我创建一个字符串并将数字添加到最后一个位置。但是当我执行代码时没有任何事情发生......
答案 0 :(得分:1)
使用字符串构建器并追加到末尾。效率更高,因为每次编辑都不会创建新字符串。
var sb = new StringBuilder();
...
sb.Append("0");
sb.Append("1");
等
完成后,请用ToString()
Console.WriteLine(sb.ToString());
要解决您的订单问题,请尝试插入而不是结束。
sb.Insert(0, "0");
sb.Insert(0, "1");
答案 1 :(得分:1)
要连接字符串,只需使用+
运算符即可。
b = b + '0';//add to the end
b = '0' + b;//or front
将Convert.ToString用于二进制格式
Convert.ToString(a, 2)
答案 2 :(得分:0)
Insert()
返回由旧字符串和您插入的字符串组成的新字符串。它不会更改原始字符串,您必须将值重新分配给b
或将值分配给新变量。
试试这样:
b = b.Insert(0, "0");
编辑:更改插入字符串的索引,如您想要的最新值。
答案 3 :(得分:0)
您可以使用StringBuilder
在System.Text下
using System.Text;
StringBilder b = new StringBuilder();
b.Append("0");
b.Append("1");
了解更多Here