从下拉列表中形成二进制数

时间:2013-02-13 20:07:56

标签: c#

所以, 我有8个下拉列表,其中填充了值0和1.使用这8个下拉列表中的选定值,我想将它们放在一起以生成二进制数。 从那里我将二进制数转换为十进制(十进制输出将显示在文本框中,因此每次更改任何下拉列表中的不同数字时,十进制数将更改。)

但是我不确定如何将所有8个选定值合并为一个8位二进制数,所以我可以在得到该数字后转换它。关于如何开始这个的任何建议?

2 个答案:

答案 0 :(得分:1)

非常糟糕(但很简单)的方式:

Convert.ToInt32(dd7.Text + dd6.Text + dd5.Text + dd4.Text + 
                dd3.Text + dd2.Text + dd1.Text + dd0.Text, 2)

答案 1 :(得分:0)

对于每个“位”,转移它。

因此,如果最高位为1,则执行1<< 8

然后,按位或(|)创建最终的二进制数。

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;    
}

这也允许您使用可变数量的下拉列表。