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数组的问题是什么呢?

BitArray AND operation

And方法改变(即改变对象)BitArray。从文档中获取BitArray的返回值。和:

[返回][t]包含按位运算结果的当前实例对当前BitArray中的元素进行与操作

注意,这里说的是当前实例

bit1数组将是与bit3数组相同的实例。由于它们是同一个实例,listBox3listBox4将具有相同的值。

编辑:格式和说明

您操作了BitArray bit1

BitArray bit3 = bit1.And(bit2);

"对当前BitArray中的元素与指定BitArray中的相应元素进行逐位与运算。"MSDN