int buckets = 6250; char*lowest_level_data =newchar[200000];
int lowest_level_data_size() { return(buckets + 3)/ 4; }
int lowest_level(int bucket) { int i =(unsignedchar) lowest_level_data[bucket / 4]; return 3 &(i >>(buckets % 4)); }
void set_lowest_level(int bucket,int lowest) { unsignedchar p =(unsignedchar) lowest_level_data[bucket / 4];
p &=~(3 <<(buckets % 4));
p |=(lowest & 3)<<(buckets % 4);
lowest_level_data[bucket / 4]=(char) p; }
int
main() { printf("lowest_level_data_size() is %d\n", lowest_level_data_size()); printf("set_lowest_level(200, 2)\n");
set_lowest_level(200, 2); printf("lowest_level(200) is %d\n", lowest_level(200));