#include <stdio.h>
#include <string.h>
#include <iostream>
using namespace std;
const int BYTESIZE = 8;
void SetBit(char* p, int position) //O(1)
{
int skip = position / BYTESIZE;
p += skip;
*p = *p | (0x01 << (position % BYTESIZE));
}
int main()
{
int num[] = {3, 5, 2, 10, 6};
char *pBuffer = new char[2];
memset(pBuffer, 0, sizeof(pBuffer));
for (int i = 0; i < 5; i++)
{
SetBit(pBuffer, num[i]);
}
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < BYTESIZE; j++)
{
if ((*pBuffer & (0x01 << j)) == (0x01 << j))
{
printf("%d ", i * BYTESIZE + j);
}
}
pBuffer++;
}
return 0;
}
Bitmap操作
最新推荐文章于 2024-01-05 02:38:20 发布