BitArray AND operation
本文关键字:operation AND BitArray | 更新日期: 2023-09-27 18:04:51
我创建了一个BitArray程序。
private void Form1_Load(object sender, EventArgs e)
{
BitArray bit1 = new BitArray(4);
bit1[0] = true;
bit1[1] = false;
bit1[2] = true;
bit1[3] = false;
for (int a = 0; a < bit1.Count; a++)
{
listBox1.Items.Add(bit1[a]);
}
bool[] arr = new bool[] { false, true, true, false };
BitArray bit2 = new BitArray(arr);
for (int a = 0; a < bit2.Count; a++)
{
listBox2.Items.Add(bit2[a]);
}
BitArray bit3 = bit1.And(bit2);
for (int a = 0; a < bit3.Count; a++)
{
listBox3.Items.Add(bit3[a]);
}
for (int a = 0; a < bit1.Count; a++)
{
listBox4.Items.Add(bit1[a]);
}
for (int a = 0; a < bit2.Count; a++)
{
listBox5.Items.Add(bit2[a]);
}
}
listBox4
给出如下输出:
false, false, true, false
现在在listBox4
中,我认为正确的输出如下,因为我没有改变bit1数组中的任何内容:
true, false, true, false
那么bit1
数组的问题是什么呢?
And方法改变(即改变对象)BitArray。从文档中获取BitArray的返回值。和:
[返回][t]包含按位运算结果的当前实例对当前BitArray中的元素进行与操作
注意,这里说的是当前实例。
bit1
数组将是与bit3
数组相同的实例。由于它们是同一个实例,listBox3
和listBox4
将具有相同的值。
编辑:格式和说明
您操作了BitArray bit1
BitArray bit3 = bit1.And(bit2);
"对当前BitArray中的元素与指定BitArray中的相应元素进行逐位与运算。"MSDN