逻辑运算实现位向量
来源:互联网 发布:python 时间戳转毫秒 编辑:程序博客网 时间:2024/05/16 12:38
1.位向量的含义
位向量指的是由一些二进制位组成的向量,包含位向量的设置,清零以及探测功能,例如:如果有1,2,4,5这几个数组,则需要二进制数110110表示。现在需要用32位的int型数据的每一位表示一个数据,因为正常情况下数据范围大于32,所以需要int数组来表示,即a[0]表示0-31,a[1]表示32-63,以此类推。
2.代码实现
#define N 10000000 //表示数据的最大值#define BITPERWORD 32 //表示int所占的字节数#define SHIFT 5 //表示2^5=32位的int#define MASK 0x1f //5位的掩码,表示二进制数11111int array[1 + N / BITPERWORD]; //存储最大值为N所需要位向量的数组,初始值均为0//设置位向量void set(int i){array[i >> SHIFT] |= (1 << (i&MASK)); //i >> SHIFT表示它存放在数组的哪一个元素下面,i&MASK表示i%32}//清楚数组第i位为0void clear(int i){array[i >> SHIFT] &= ~(1 << (i&MASK));}//返回array的第i位int test(int i){return array[i >> SHIFT] & (1 << (i & MASK));}
1 0
- 逻辑运算实现位向量
- 使用位逻辑运算来实现位向量
- 使用位逻辑运算实现位向量
- 使用位逻辑运算来实现位向量
- 使用位逻辑运算实现位向量
- 使用位逻辑运算来实现位向量
- 编程珠玑位逻辑运算实现位向量
- 使用位逻辑运算实现位向量
- 使用位逻辑运算实现位向量
- 使用位逻辑运算实现位向量并实现位图排序
- 使用位逻辑运算实现位向量(位图)
- 如何使用位逻辑运算来实现位向量
- 编程珠玑之1.2位逻辑运算实现位向量
- 编程珠玑:通过位逻辑运算实现位向量
- [C++]使用位逻辑运算来实现位向量的理解
- 如何使用为逻辑运算实现位向量(PROGRAMMING PEARLS)
- 使用位逻辑运算实现位向量,并实现大数据排序
- 编程珠玑--如何使用位逻辑运算(例如不、或、移位)来实现位向量
- Java开发成长之路
- 机器学习之(二)OpenAI 生成模型聚焦无监督学习
- 运算符——递增++和递减--
- 单点登录SSO的实现原理
- 关于eclipse中jar冲突问题(不同版本的jar)
- 逻辑运算实现位向量
- 自定义控件实现城市列表
- Java泛型知识学习
- mysql安装
- 临界区,互斥量,信号量,事件的区别
- iOS复杂动画之抽丝剥茧(Objective-C & Swift)
- windows和Linux以及Java中路径分隔符的不同
- 给周一的日期,得到这一周的日期 (区间段)
- com.mongodb.DBPortPool$SemaphoresOut: Out of semaphores to get db connection