這是一種時髦的程序。由於某種原因,當二進制輸入類似於101時,它是有效的。然後它不適用於1000.這有點奇怪。有人能解釋一下嗎?二進制到十進制轉換不起作用
class Program
{
static void Main()
{
string binary = "xxx";
double decimalValue = 0;
Console.WriteLine("Enter in a binary number:");
binary = Console.ReadLine();
for (int i = 0; i < binary.Length; i++)
{
Console.WriteLine("Length is: {0}", binary.Length);
if (binary[i] == 49) //Look at that
decimalValue = decimalValue + Math.Pow(2, i);
}
Console.WriteLine("The decimal equivalent value is {0}", decimalValue);
Console.ReadLine();
}
}
它的心臟是當然 如果(二進制[I] == 49)
我只是使得它教給自己一些C#。有人可以告訴我在49以外的右側放置什麼,這是「1」的ASCII碼。如果我把「1」我得到一個錯誤,說你不能比較字符串到字符。
任何幫助,將不勝感激。我不想使用預先轉換爲二進制方法,因爲這應該是一個可教的時刻。
提示:嘗試'Math.Pow(2,binary.Length - i - 1)';) –
字符文字用單引號括起來:''1''。 – user1620220
如果您無法將字符串與字符進行比較,爲什麼不嘗試將字符串轉換爲另一個字符?你也可以嘗試解析(提示)字符串到一個整數,看看它是1還是0. –