bitmap技术简单实现

来源:互联网 发布:淘宝哪个二手手机 编辑:程序博客网 时间:2024/06/03 21:59
#define BITSPERWORD 32  #define SHIFT 5  #define MASK 0x1F  #define N 10000000  int a[1 + N/BITSPERWORD];//申请内存的大小  //set: set the bit to 1  void set(int i) {              a[i>>SHIFT] |=  (1<<(i & MASK));   }  //clr  init all bit to zero  void clr(int i) {              a[i>>SHIFT] &= ~(1<<(i & MASK));   }  //test: test the bit is if 1int  test(int i){       return a[i>>SHIFT] & (1<<(i & MASK));   }  int main()  { int i;  for (i = 0; i < N; i++)  clr(i);    while (scanf("%d", &i) != EOF)//ctrl+z  enter表结束set(i);  for (i = 0; i < N; i++)  if (test(i))  printf("%d\n", i);  return 0;  }  

原创粉丝点击