gpt4 book ai didi

c++ - 如何制作 'bit' 数组而不是 'int' 数组?

转载 作者:太空狗 更新时间:2023-10-29 23:35:33 26 4
gpt4 key购买 nike

通常,在 C++ 中,在创建数组时,我将其声明为 int。但是,由于我只处理二进制数(仅 1 和 0),我认为我可以将 4 个字节的“int”转换为 1 位。

例如

int array1[] = {1,0,0,0,0,1,0}; // -----had total of 32 bytes

因为它只是二进制,内存效率仅为 1/32,因为每个 int 1 将存储为 000000000000000000000000000001(4 字节)。

所以我的问题是如何将所有这些转换为位,以便 32 字节可以“压缩”为 1 字节(而不是 32 字节的 8 int,我想要 8 位数据)?

最佳答案

使用std::bitset .我认为这就是您想要的。

我不知道您是否是一名有竞争力的程序员,但有时在竞争性编程中需要有 10^9 个标志。然后 bitset 或 in sieve 的素数确定这非常有帮助。

#include<bitset>
...
...
bitset<10000000> bs;

..
bs[1]=1;
bs[i]=0;
..etc

关于c++ - 如何制作 'bit' 数组而不是 'int' 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34694438/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com