大家好! 我写了这个,但效果不好,这让我很恼火。我试图找到解决方案,但没有发现其中有任何错误。
private string binaris_decimalis(string binaris_szam)
{
char[] binaris_karakterek = binaris_szam.ToCharArray();
int decimalis_szam_int = 0;
string decimalis_szam;
for (int szam = 0; binaris_karakterek.Length > szam; szam++)
{
decimalis_szam_int = decimalis_szam_int * 2 + Convert.ToInt32(binaris_karakterek[szam]);
}
decimalis_szam = Convert.ToString(decimalis_szam_int);
return decimalis_szam;
}
像这样使用:
private void valtas_2_Click(object sender, EventArgs e)
{
binaris_szam_2 = binaris_2.Text.Split('.');
for (int szam = 0; 4 > szam; szam++)
{
decimalis_szam_2[szam] = binaris_decimalis(binaris_szam_2[szam]);
}
decimalis_2.Text = decimalis_szam_2[0] + "." + decimalis_szam_2[1] + "." + decimalis_szam_2[2] + "." + decimalis_szam_2[3];
}
binaris_szam_2和decimalis_szam2被声明为公共(public)字符串[]:
string[] binaris_szam_2 = new string[4];
string[] decimalis_szam_2 = new string[4];
文本输入如下所示:
10000000.10000000.10000000.10000000
文本输出应如下所示:
128.128.128.128
但是输出是:
12368.12368.12368.12368
如果有人能帮助我,我将不胜感激!
最佳答案
我不知道你的代码有什么问题,但你可以直接用 c# 来做到这一点。
Convert.ToInt32("10000000", 2).ToString(); // output 128
关于c# - 二进制数转十进制(效果不好,为什么?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14899582/