Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。
Map映射表
位移转换
Bit-Map的应用
1)可进行数据的快速查找,判重,删除,一般来说数据范围是int的10倍以下。
2)去重数据而达到压缩数据
统计一个整数对应的二进数中有几个1?
这里写代码片
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char * argv[])
{
int val;
int index;
int cnt;
while(fflush(stdin), scanf("%d", &val) == 1)
{
index = 0;
cnt = 0;
while(index <= 31)
{
if((val & (1 << index)) != 0)
{
cnt++;
}
index++;
}
printf("1: %d\n", cnt);
}
system("pause");
return 0;
}