第22章 二进制数组
操作bit数组,省时省空间的好办法
22.1 位数组的表示
使用SDS来保存字节数组(buf[]),如8位二进制数组作为一个字节保存如buf[0]中
22.2 GETBIT的实现
先先将offset/8 确认在数组中的哪一个一个字节,然后将offset mod 8 +1来确定要找的位的位置
22.3 SETBIT命令的实现
同上,查找位置后存储
22.4 BITCOUNT命令的实现
统计值为1的位的数量
22.4.1 遍历统计法
略
22.4.2 查表统计法
可以提前记录某个八位的排列里面有几个1,在统计时直接按照这个表取值进行累加即可
22.4.3 计算汉明重量
略,怎么突然变数学课了
22.4.4 Redis的实现
128位以下用查表法,以上用汉明重量算法
22.5 BITOP命令的实现
对字节执行逻辑与、逻辑或、逻辑异、逻辑非操作