当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何制作'bit'数组而不是'int'数组?》经验,为你挑选了1个好方法。

通常,在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个字节(而不是8个32字节的int,我想要8位数据)?



1> user2736738..:

使用std :: bitset.我想这就是你想要的.

我不知道你是否是一个有竞争力的程序员,但有时在竞争性编程中,它需要有10 ^ 9个标志.然后bitset或在筛子的最佳决定中,这是非常有帮助的.

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

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

推荐阅读
凹凸曼00威威_694
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有