布尔运算和应用掩码运算
来源:互联网 发布:js 鼠标离开 div隐藏 编辑:程序博客网 时间:2024/04/27 06:50
一个有助于思考布尔运算和应用掩码运算的典型方式之间的关系:
int bis(int x, int m); // 根据掩码m来置xint bic(int x, int m); // 根据掩码m来清x// 仅使用bis和bic来计算 x|y int bool_or(int x, int y) { int r = bis(x, y); return r;}// 仅使用bis和bic来计算 x^y int bool_xor(int x, int y) { int r = bis(bic(x, y), bic(y, x)); return r;}
bis运算等价于布尔or,bic(x, m)等价于 x&~m;
现实现x对应位为1且m对应位为0时,该位为1,故:
x^y = (x&~y) | (~x&y)
故:bis(bic(x, y), bic(y, x))
>> 在c/c++大多数实现中都是算术右移:
int i=-1;
i = i>>4;
printf("%d\n", i);
输出是-1
1 << 2 + 3 << 4 等价于 1 << (2 + 3) << 4
故输出512而不是52
- 布尔运算和应用掩码运算
- 布尔运算
- 布尔运算
- 布尔运算
- SSE掩码运算测试
- 第二章 布尔运算和ALU
- Awk关系运算符和布尔运算符
- 布尔运算 逻辑运算 移位运算
- 【位运算经典应用】 标志位与掩码
- 【位运算经典应用】 标志位与掩码
- 布尔赋值运算符
- 1.4 布尔运算
- OCC布尔运算失败
- 布尔代数运算总结
- 选区的布尔运算
- Shell布尔运算
- 布尔运算-二维
- python-布尔运算
- c++ 代码, 下面两段代码编译后文件大小为什么会不同
- 幸存者:约瑟夫环问题
- PHP详解ASCII码对照表与字符转换 && 字符串处理函数库
- Syncml Features
- can't find /mnt/cdrom in /etc/fstable……”
- 布尔运算和应用掩码运算
- csdn第二次培训第四节课
- IE 实现代码示例
- 摇滚,朋克和金属
- 如何创建MySQL5的视图
- 超像素分割
- 成为指弹更好的吉他手必做的10件事
- 学习电脑的好网站
- 2012腾讯暑期实习面试题----寻找链表中间结点