编写bitmap案例代码
时间: 2023-04-03 18:03:47 浏览: 61
以下是一个简单的bitmap案例代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BITMAP_SIZE 1000
typedef struct Bitmap {
char bits[BITMAP_SIZE];
} Bitmap;
void set_bit(Bitmap *bmp, int pos) {
int byte_pos = pos / 8;
int bit_pos = pos % 8;
bmp->bits[byte_pos] |= (1 << bit_pos);
}
void clear_bit(Bitmap *bmp, int pos) {
int byte_pos = pos / 8;
int bit_pos = pos % 8;
bmp->bits[byte_pos] &= ~(1 << bit_pos);
}
int get_bit(Bitmap *bmp, int pos) {
int byte_pos = pos / 8;
int bit_pos = pos % 8;
return (bmp->bits[byte_pos] >> bit_pos) & 1;
}
int main() {
Bitmap bmp;
memset(bmp.bits, 0, sizeof(bmp.bits));
set_bit(&bmp, 10);
set_bit(&bmp, 20);
set_bit(&bmp, 30);
clear_bit(&bmp, 20);
printf("%d %d %d\n", get_bit(&bmp, 10), get_bit(&bmp, 20), get_bit(&bmp, 30));
return 0;
}