首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BitArray与运营

BitArray与运营
EN

Stack Overflow用户
提问于 2014-05-24 16:50:42
回答 2查看 379关注 0票数 1

我已经创建了一个BitArray程序。

代码语言:javascript
复制
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提供以下输出:

代码语言:javascript
复制
false, false, true, false

现在,在listBox4中,我认为正确的输出如下所示,因为我不改变bit1数组中的任何内容:

代码语言:javascript
复制
true, false, true, false

那么,bit1数组有什么问题呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-24 16:56:58

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

返回当前实例,该实例包含当前BitArray中元素的按位操作和针对指定BitArray中相应元素的操作结果。

注意,表示当前实例。

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

编辑:格式化和澄清

票数 3
EN

Stack Overflow用户

发布于 2014-05-24 17:00:45

你疯了BitArray bit1

代码语言:javascript
复制
BitArray bit3 = bit1.And(bit2);

“对当前BitArray中的元素对指定的BitArray中的相应元素执行按位和操作”MSDN

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23847476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档