0

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

但我不确定如何将所有 8 个选定的值组合起来形成一个 8 位二进制数,以便在获得该数字后对其进行转换。关于我应该如何开始这个的任何建议?

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

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

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 回答