首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BitArray -移位位

BitArray -移位位
EN

Stack Overflow用户
提问于 2010-09-10 18:52:22
回答 5查看 8.2K关注 0票数 6

我有一个System.Collections.BitArray数组(大约3000个项目),我想把所有的位都向左移位1。但是这个集合似乎不支持这个操作(例如,bitArray << 1不工作,并且没有方法)。你知道该怎么做吗?

谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-09-10 19:09:51

这个简单的代码片段展示了一种手动执行此操作的方法。bitArray[0]的值将被覆盖:

代码语言:javascript
复制
//... bitArray is the BitArray instance

for (int i = 1; i < bitArray.Count; i++)
{
   bitArray[i - 1] = bitArray[i];
}

bitArray[bitArray.Count - 1] = false // or true, whatever you want to shift in

让它成为一个扩展方法应该没什么大不了的。

票数 6
EN

Stack Overflow用户

发布于 2011-08-05 06:25:39

System.Numerics.BigInteger确实支持位移位。

票数 2
EN

Stack Overflow用户

发布于 2011-10-08 20:29:05

我不确定效率如何,但是这个扩展方法可以做到这一点

代码语言:javascript
复制
public static BitArray ShiftRight(this BitArray instance)
{
    return new BitArray(new bool[] { false }.Concat(instance.Cast<bool>().Take(instance.Length - 1)).ToArray());
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3684002

复制
相关文章

相似问题

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