您的位置:首页 > 其它

bitmap

2016-05-10 11:10 274 查看
bitmap是通过1个位表示一个状态,比如:int类型有2^32个数字,即4G个数字,那么每个数字一个状态,就是2^32个bit,即512 MB。

即4G个数字(大约是4亿数字,如果是4G个整数,就是16GB大小)可以转化为512 MB大小

#include <iostream>
#include <memory.h>
using namespace std;

char bitmap[4] ;

void add(int n)
{
bitmap[n/8] |= (128 >> n%8);
}

bool search(int n)
{
if(bitmap[n/8] & (128>>n%8))
return true;
return false;
}

int main()
{
int n[] = {2, 5, 7, 9, 25,};
int i;

memset (bitmap, 0, sizeof(bitmap));

for( i=0; i<5; i++)
add(n[i]);

for( i=0; i<5; i++)
if(search(n[i]))
cout << "find " << n[i] <<endl;

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: