#include<iostream>
using namespace std;
#define BITWORD 32
#define SHIFT 5
#define MASK 0x1F //(mod32)
#define N 1000
int a[1+N/BITWORD]; //申请一个内容纳N位的位串
void set(int i) //将第i位设置为1
{
a[i>>SHIFT]|=(1<<(i&MASK));
}
void clr(int i) //将第i位设置为0
{
a[i>>SHIFT]&=~(1<<(i&MASK));
}
int test(int i) //返回第i位的状态
{
return (a[i>>SHIFT]&(1<<(i&MASK)))!=0;
}
int main()
{
set(8);
cout<<test(8)<<endl;
cout<<test(9)<<endl;
clr(8);
cout<<test(8)<<endl;
return 0;
}
位向量表示法
最新推荐文章于 2024-01-23 22:46:10 发布