标签: bitarray

BitArray以错误的方式返回位?

这段代码:

BitArray bits = new BitArray(new byte[] { 7 });
foreach (bool bit in bits)
{
    Console.WriteLine(bit ? 1 : 0);
}
Run Code Online (Sandbox Code Playgroud)

给我以下输出:

11100000
Run Code Online (Sandbox Code Playgroud)

不应该是相反的方式吗?像这样:

00000111
Run Code Online (Sandbox Code Playgroud)

我知道有一点点大端,虽然这些术语只涉及字节的位置.据我所知,它们不会影响比特.

c# enumeration bitarray

13
推荐指数
1
解决办法
5753
查看次数

将C#字节转换为BitArray

是否有任何预定义功能可用于转换byteBitArray

一种方法是检查byte值的每一位,然后执行按位运算.我想知道是否有任何比这更简单的方法.

c# byte bitarray

13
推荐指数
2
解决办法
5万
查看次数

如何在C/Objective C中实现位数组

iOS/Objective-C:我有一大堆布尔值.

这是存储这些值的低效方法 - 当只需要一个时,每个元素至少使用8位.

我该如何优化?

c objective-c core-foundation bitarray ios

12
推荐指数
3
解决办法
9212
查看次数

如何在C++中存储位数组?

在C++中存储位数组的最佳方法是什么(没有Boost,只是标准容器),例如,表示卷分配位图?

我认为这std::vector<bool>是一个好主意,但显然它是邪恶和弃用,所以有更好的选择吗?

也:

如果我在内存中有一个字节数组,我该如何将它们复制到推荐的容器中?
(我很难搞清楚这一点vector<bool>.)

c++ containers stl bitmap bitarray

12
推荐指数
1
解决办法
1万
查看次数

Bitarray VS bool []

我期待在这里找到一个关于这个的现有问题,但我没有.

Bitarray当你可以将bool值存储在一个时,使用a有什么好处bool[]

System.Collections.BitArray biArray = new System.Collections.BitArray(8);
biArray[4] = true;

bool[] boArray = new bool[8];
boArray[4] = true;
Run Code Online (Sandbox Code Playgroud)

bool[],因为存在更多的(扩展)方法以数组,而不是一个工作似乎有点更加得心应手给我BitArray

c# boolean bitarray

11
推荐指数
2
解决办法
6343
查看次数

计算C#素数的最快方法?

我实际上有一个问题的答案,但它没有并行化,所以我对改进算法的方法很感兴趣.无论如何,它对某些人来说可能是有用的.

int Until = 20000000;
BitArray PrimeBits = new BitArray(Until, true);

/*
 * Sieve of Eratosthenes
 * PrimeBits is a simple BitArray where all bit is an integer
 * and we mark composite numbers as false
 */

PrimeBits.Set(0, false); // You don't actually need this, just
PrimeBits.Set(1, false); // remindig you that 2 is the smallest prime

for (int P = 2; P < (int)Math.Sqrt(Until) + 1; P++)
    if (PrimeBits.Get(P))
        // These are going to be the multiples of P …
Run Code Online (Sandbox Code Playgroud)

.net c# algorithm performance bitarray

10
推荐指数
1
解决办法
8456
查看次数

算法:非常稀疏的位数组的巨大数量,编码使用

我有一个特殊的需求,最重要的问题是:

  • 在记忆中
  • 内存占用非常低
  • 速度

这是我的"问题":我需要在内存中存储大量非常稀疏的位数组.这些位集仅"附加",主要用于交叉点.通过巨大的,我的意思是高达200 000位阵列.

每个位组的范围应在[0 ... 16 000 000]之间.

我用"仅"10个673位数组运行了一些预测试,其中包含了我得到的一些实际数据并得到了以下结果:

  1% of the bit arrays (  106 bit arrays) Hamming weight: at most     1 bit  set
  5% of the bit arrays (  534 bit arrays) Hamming weight: at most     4 bits set
 10% of the bit arrays ( 1068 bit arrays) Hamming weight: at most     8 bits set
 15% of the bit arrays ( 1603 bit arrays) Hamming weight: at most    12 bits set
 20% of the bit …
Run Code Online (Sandbox Code Playgroud)

compression algorithm bitarray in-memory

10
推荐指数
1
解决办法
5324
查看次数

有没有人发布过更强大的BitArray for .NET?

在努力使.NET BitArray类能够满足我的需求之后,我决定在网络上寻找更强大的开源或商业类.令我惊讶的是,我找不到一个.我看到了有关扩展方法的各种建议或解决BitArray功能限制的方法,但没有类似于BitArray的替代品.

我们是通过扩展或更换BitArray来重新发明轮子吗?

理想情况下,替换将具有部分/全部这些功能:

  1. 实现IList<bool>而不仅仅是ICollection.

  2. 可以转换为各种其他类型,如int(最多32位BitArrays),bool(一位BitArrays),double等.

  3. 实现产生字节数组的ToArray类型的方法.它可以参数化为字节序.由于BitArray可以从构造函数中的字节数组参数构造,因此能够将其返回到字节数组似乎是一个很好的闭包.

  4. 能够从中提取子BitArrays.例如,从111101这样的数组中,您可以提取位1到4,从而产生新的BitArray 1110.

  5. 位移运算符.

  6. 处理无限长度的位(就像BitArray那样),但是仍然可以转换为像int这样的有限类型,就像你知道它适合你可以将long转换为int一样.

  7. ?__我打赌人们的愿望清单上还有很多其他项目.

你知道那里有任何开源或商业实现吗?如果它是开源的,那么拥有Apache,MIT或Ms-Pl等非互易许可证会很不错.

c# generics wpf bitarray

10
推荐指数
1
解决办法
1331
查看次数

将byte或int转换为bitset

我有以下内容:

int num=Integer.parseInt(lineArray[0]);
byte numBit= num & 0xFF;
Run Code Online (Sandbox Code Playgroud)

有没有非常简单的方法转换numBit为位数组?或者更好的是,有没有办法绕过int的字节转换并直接从num位数组?

谢谢

java type-conversion bitarray

10
推荐指数
2
解决办法
2万
查看次数

如何在python中将bitarray转换为整数

假设我使用以下代码在python中定义了一些bitarray:

from bitarray import bitarray
d=bitarray('0'*30)
d[5]=1
Run Code Online (Sandbox Code Playgroud)

如何将d转换为整数表示?另外,如何d&(d+1)使用bitarrays 进行操作?

python bit-manipulation bitarray

10
推荐指数
4
解决办法
4494
查看次数