目录
知识点
算数运算常用操作符:
位运算常用操作符:&(按位与)、 | (按位或)、^(按位异或)、~(取反)、<<(左移,右侧补0)、 >>(右移,左侧补符号位)、 >>>(右移,左侧补0)
位运算的大部分面试题靠平时积累,新题在面试场上较难想出思路,见过就可能会,没见过就不会了。
位运算的应用
布隆过滤器
1、引入布隆过滤器
举例
不安全网页的黑名单包含100亿个黑名单网页,每个网页的URL最多占用64字节。现在想要实现一种网页过滤系统,可以根据网页的URL判断该网页是否在黑名单上,请设计该系统。要求该系统允许有万分之一以下的判断失误率,并且使用的额外空间不要超过30G。
分析:这道题涉及到大数据和位运算的应用。
如果将黑名单中的每个网页都存入哈希表或数据库已备查询,但是每个url最多64个字节,数量是100亿,需要的存储空间为6400亿个byte,1GB = 1024MB = 1024*1024KB = 1024*1024*1024B = 1073741824Byte,近10亿个字节,就需要640GB的空间,不满足要求。
对于网页黑名单系统、垃圾邮件过滤系统、爬虫的网址判断重复系统,该系统可以容忍一定程度的失误率,对空间要求较高,那么这样的系统可以用到