bit_map数据结构

来源:互联网 发布:邓老师c语言视频教程 编辑:程序博客网 时间:2024/06/06 06:54

学习map时看到了一个bit_map数据类型这个类型节约了sizeof(Type)*8倍的储存空间。主要原理就是,一个字节有八位,一个bit位就可以表示一个数。

把bit位置为1可以用*p = (*p)|(0x01<<(n%(sizeof(char)*8)));

检查bit位可以用if(*p&(0x01<<n%8)==0x01<<n%8)

代码如下

#include <iostream>#define MAX_SIZE  100using namespace std;int main(){char a[MAX_SIZE];memset(a,0,sizeof(a));char *p = a;int n = 44;for (int i = 0; i< n/(sizeof(char)*8);i++){p++;} *p = (*p)|(0x01<<(n%(sizeof(char)*8)));if(*p&(0x01<<n%8)==0x01<<n%8)cout<<"ok"<<endl;}


原创粉丝点击