2017-12-19 28 views
0

関数を使用して10進数のバイナリにコンバータを作成したいのですが、私のコードに何が間違っているのかわかりません:(エラーは、私は12行目でそれを変換しました)。編集 - 出力ではなくバイナリに変換するプロセスに興味があります。10進数を2進数に変換するC#関数を使用する

static void Main (string[] args) 
    { 
    Console.WriteLine("Decimal 14 = Binary " + dec_to_bin(14)); 
    Console.WriteLine("Decimal 100 = Binary " + dec_to_bin(100)); 
    Console.WriteLine("Decimal 32 = Binary " + dec_to_bin(32)); 
    Console.WriteLine("Decimal 64 = Binary " + dec_to_bin(64)); 
    Console.ReadLine(); 
    } 
    public static string dec_to_bin(int dec) 
    { 
    string binary = "11111111"; 
    char[]binaryArray = binary.ToCharArray(); 

    for (int i = 0; i < 8; i++) 
    { 
     if (dec % 2 == 0) 
     { 
     binaryArray[i] = "0"; // error 1 
     } 
     else 
     { 
     binaryArray[i] = "1"; // error 2 
     } 
    } 

    binary = new string(binaryArray); 
    return binary; 

    } 
+1

特定の 'Decimal'型があるので、" integer to binary "と呼ぶことができます。 – john

+1

[intをバイナリに簡単かつ高速に変換する方法は?](https://stackoverflow.com/questions/1838963/easy-and-fast-way-to-convert-an-int-to-binary) – mjwills

+0

[c#での10進数から2進数への変換の可能な複製](https://stackoverflow.com/questions/2954962/decimal-to-binary-conversion-in-c) – styx

答えて

5

binaryArray[i] = "0"binaryArray[i] = '0'

"0"でなければなりません'0'charであり、あなたがcharの配列を持っていながら、リテラルstringです。

binaryArray[i] = "1"


のための同上はあなたの問題を解決しますが、私は(mjwillsでマークdupeにより示唆されるように)Convert.ToString(dec, 2)を使用することをお勧めします。もちろん、これは自分でコーディングするのではなく、結果に興味がある場合にのみ意味をなさないものです。


私は意図的にコードスニペットの他の問題に対処していないことに気をつけてください。

関連する問題