因此,我有 8 个下拉列表,其中填充了值 0 和 1。使用从这 8 个下拉列表中选择的值,我想将它们放在一起形成一个二进制数。从那里我将二进制数转换为十进制(十进制输出将显示在文本框中,因此每次更改任何下拉列表中的不同数字时十进制数都会更改)。
但我不确定如何将所有 8 个选定的值组合起来形成一个 8 位二进制数,以便在获得该数字后对其进行转换。关于我应该如何开始这个的任何建议?
因此,我有 8 个下拉列表,其中填充了值 0 和 1。使用从这 8 个下拉列表中选择的值,我想将它们放在一起形成一个二进制数。从那里我将二进制数转换为十进制(十进制输出将显示在文本框中,因此每次更改任何下拉列表中的不同数字时十进制数都会更改)。
但我不确定如何将所有 8 个选定的值组合起来形成一个 8 位二进制数,以便在获得该数字后对其进行转换。关于我应该如何开始这个的任何建议?
真正糟糕(但简单)的方法:
Convert.ToInt32(dd7.Text + dd6.Text + dd5.Text + dd4.Text +
dd3.Text + dd2.Text + dd1.Text + dd0.Text, 2)
对于每个“位”,移动它。
因此,如果最高位为 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;
}
这也允许您使用可变数量的下拉菜单。