加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C语言位数组宏定义操作

(2013-04-11 08:08:17)
标签:

c语言

位数组

宏定义

位操作

it

分类: linux下的C编程
宏定义实现位数组相关操作:
#define BITMASK(b) (1<<((b)%CHAR_BIT))//字节内偏移
#define BITSLOT(b) ((b)/CHAR_BIT)//将数据映射到所属字节内
#define BITSET(a,b) ((a)[BITSLOT(b)] |= BITMASK(b))//置位
#define BITCLEAR(a,b) ((a)[BITSLOT(b)] &= ~BITMASK(b))//清位
#define BITTEST(a,b) ((a)[BITSLOT(b)] & BITMASK(b))//查看相应位数据
#define BITNSLOTS(nb) ((nb + CHAR_BIT - 1) / CHAR_BIT)//计算所需字节数
优点:减少函数调用开销,位数组对空间利用率高,参见bloom过滤器

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有