草庐IT

BitArray

全部标签

c# - 是否有人为 .NET 发布了更强大的 BitArray?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭6年前。Improvethisquestion在努力使.NETBitArray类满足我的需求之后,我决定在Web上寻找更强大的开源或商业类。令我惊讶的是,我找不到一个。我看到了各种关于扩展方法或解决BitArray功能限制的方法的建议,但没有什么类似于BitArray替代品。我们是否都在通过扩展或替换BitArray来重新发明轮子?理想情况下,替代品应具有以下部分/全部功能:实现IList而不仅仅是ICollec

c# - 在 C# 中计算素数的最快方法?

我的问题实际上有答案,但它不是并行化的,所以我对改进算法的方法很感兴趣。不管怎样,它对某些人来说可能是有用的。intUntil=20000000;BitArrayPrimeBits=newBitArray(Until,true);/**SieveofEratosthenes*PrimeBitsisasimpleBitArraywhereallbitisaninteger*andwemarkcompositenumbersasfalse*/PrimeBits.Set(0,false);//Youdon'tactuallyneedthis,justPrimeBits.Set(1,false

c# - 为什么 Visual Studio Debugger 不枚举 BitArray 并显示结果?

对于下面这行C#代码:BitArraybitty=newBitArray(new[]{false,false,true,false});如果我在Watch窗口中计算“bitty”,我看不到集合的成员。如果我计算应该枚举IEnumerable并显示结果的“bitty,results”,我会收到消息“只有Enumerable类型可以有结果View”,即使BitArray是一个IEnumerable。调试器为什么要这样做?澄清:我问的是VS调试器表达式计算器内部发生了什么,而不是问如何在调试器中查看BitArray.. 最佳答案 结果Vi

c# - BitArray 以错误的方式返回位?

这段代码:BitArraybits=newBitArray(newbyte[]{7});foreach(boolbitinbits){Console.WriteLine(bit?1:0);}给我以下输出:11100000不应该反过来吗?像这样:00000111我知道有小端和大端,尽管这些术语仅指字节的位置。据我所知,它们不会影响位。 最佳答案 documentationforBitArray状态:Thefirstbyteinthearrayrepresentsbits0through7,thesecondbyterepresents

c# - 位数组和 XOR

我正在寻找一种基于运算符的方式来处理位掩码和按位bool运算(XOR/NOR/OR/AND/NOT/EQV等)。一般来说,我真的喜欢扩展方法风格的方法,但在这种情况下,我觉得它有点乱。在C#中是否有更简洁的位处理方式?BitArraya=newBitArray(0x001);BitArrayb=newBitArray(0x100);BitArrayc=newBitArray(0x010);BitArraytest=a|b;//won'tcompileBitArraytest2=a^c;//won'tcompileBitArraytest3=a.Or(b);//compilesBitAr

c# - 将 C# 字节转换为 BitArray

是否有任何预定义函数可用于将byte转换为BitArray?一种方法是检查byte值的每一位,然后执行按位操作。我想知道是否有比这更直接的方法。 最佳答案 是的,使用适当的BitArray()constructor如所述here:varbits=newBitArray(arrayOfBytes);您可以使用newBitArray(newbyte[]{yourBite})调用它来创建一个字节的数组。 关于c#-将C#字节转换为BitArray,我们在StackOverflow上找到一个类似

c# - 为什么 BitVector 32 结构比 BitArray 更高效?

BitArray和BitVector32结构有什么区别,BitVector32结构相对于BitArray有什么优势?为什么BitVector32结构比BitArray更高效?提前致谢。周杰... 最佳答案 BitVector32ismoreefficientthanBitArrayforBooleanvaluesandsmallintegersthatareusedinternally.ABitArraycangrowindefinitelyasneeded,butithasthememoryandperformanceoverhe

java - 位数组 Java 的高效连接

我目前正在编写一段代码,其中我已经确定我的两个位数组的串联是瓶颈,并且正在讨论如何提高它的效率。我的位数组建模如下publicBitArray(intsize){intsizeBytes=size/8;if(size%8!=0)sizeBytes++;this.array=newbyte[sizeBytes];this.size=size;}其中size是以位为单位的大小。有效连接两个位数组时面临的挑战是在连接大小为7的位数组与大小为6的位数组时需要发生的跨接。像这样,简单地复制两个数组是不可能的。除了我目前已实现的解决方案之外,我正在研究的解决方案如下:计算“跨区”(例如5位数组的最

java - 将 byte 或 int 转换为 bitset

我有以下内容:intnum=Integer.parseInt(lineArray[0]);bytenumBit=num&0xFF;有什么非常简单的方法可以将numBit转换为位数组吗?或者更好的是,有没有办法绕过int的字节转换并直接从num到位数组?谢谢 最佳答案 如果你想要一个BitSet,尝试:finalbyteb=...;finalBitSetset=BitSet.valueOf(newbyte[]{b});如果你想要一个boolean[],staticboolean[]bits(byteb){intn=8;finalboo

c++ - OCaml 中的快速位数组

另一个综合基准:SieveofEratosthenesC++#include#includevoidfind_primes(intn,std::vector&out){std::vectoris_prime(n+1,true);intlast=sqrt(n);for(inti=2;iOCaml(使用JaneStreet'sCore和Res库)openCore.StdmoduleBits=Res.BitsmoduleVect=Res.Arrayletfind_primesn=letis_prime=Bits.make(n+1)trueinletlast=floatn|!sqrt|!Flo