0

したがって、値0と1が入力された8つのドロップダウンリストがあります。これらの8つのドロップダウンリストから選択した値を使用して、それらを組み合わせて2進数を作成します。そこから、2進数を10進数に変換します(10進数の出力はテキストボックスに表示されるため、ドロップダウンリストのいずれかの異なる数値が変更されるたびに10進数が変更されます)。

しかし、選択した8つの値すべてを組み合わせて8ビットの2進数を作成し、その数値を取得したら変換できるようにする方法がわかりません。これをどのように始めるべきかについての提案はありますか?

4

2 に答える 2

1

本当に悪い(しかし簡単な)方法:

Convert.ToInt32(dd7.Text + dd6.Text + dd5.Text + dd4.Text + 
                dd3.Text + dd2.Text + dd1.Text + dd0.Text, 2)
于 2013-02-13T20:15:45.207 に答える
0

「ビット」ごとに、それをシフトします。

したがって、最上位ビットが1の場合、1<<8を実行します。

次に、ビット単位または(|)を実行して、最終的な2進数を作成します。

int i = 1 << 8;
i |= (0 << 7);
i |= (1 << 6);

上記で使用している値(1、0、1 ..)は、ドロップダウンボックスからのものである必要があります。

ドロップダウンボックスをリストまたは配列に配置すると、このコード全体を次のように非常に簡潔に記述できます。

int x = 0;
for (int i=dropdowns.Length - 1; i >= 0; i--) {
x |= int.Parse(dropdowns[i].Text) << i;    
}

これにより、可変数のドロップダウンを使用することもできます。

于 2013-02-13T20:10:36.377 に答える