位图 bitmap 理解

来源:互联网 发布:smtp的默认端口是 编辑:程序博客网 时间:2024/05/19 10:55

   在数据库学习与试用当中会遇到一个概念“位图索引”,这是位图在索引检索中的一个应用案例。现在对位图的基本原来进行下学习。原理其实很简单,主要搞清楚一些基本概念。


先说一下基本的概念:bit,byte,word。

bit  位

byte  字节

word  字

字长是指字的长度

关系如下:

1字=2字节(1 word = 2 byte) 

1字节=8位(1 byte = 8bit) 

1 Byte = 8 Bits

1 KB = 1024 Bytes

1 MB = 1024 KB

1 GB = 1024 MB

二进制是用0和1来表示数据,位图根据0和1来存储对应的数据,应为是采用bit来存储,所以可以大大节省数据的存储空间,并具备排序特性。

举例:将一组数据进行排序。

数组:(1,31,53,41,79,201)

1:首先在内存中开辟一段空间

创建字符数组 bitmap[26](数字最大数201,26*8=208)

2:遍历字符数组的每位,设置 0  或者 1

通过设置0 或者 1 来判断这个值是否存在。1表示存在。

比如:31

则需要对bitmap[3]的第7位进行设置为1.(3*8 + 7=31)如下:

0 0 0 0 0 0 1 0


再如:1

则需要对bitmap[0]的第1位进行设置为1.(0*8 + 1=1)如下:

1 0 0 0 0 0 0 0


3:完成之后,遍历每个位,输出为1对应的值,即可得到排序后的数组。

(1,31,41,53,79,201)




0 0