神奇的位运算
来源:互联网 发布:草图大师mac版快捷键 编辑:程序博客网 时间:2024/05/28 04:55
神奇的位运算
以下列出我收集的十分神奇而实用的位运算技巧。
一、整数
1.设置x的第n位为1
x | (1<<n)
2.设置x的第n位为0
x & ~(1<<n)
3.将x的第n位取反
x ^ (1<<n)
4.得到最大的int
int maxInt = ~(1 << 31);int maxInt = (1 << 31) - 1;int maxInt = (1 << -1) - 1;
5.得到最小的int
int minInt = 1 << 31;int minInt = 1 << -1;
6.计算n乘以2
n << 1;
7.计算n除以2
n >> 1;
8.计算n乘以2的m次方
n << m;
9.就算n除以2的m次方
n >> m;
10.判断a和b是否相等
!(a^b)
11.判断n是否为奇数
(n & 1) == 1;
12.交换a和b的值
//方式1a ^= b;b ^= a;a ^= b;//方式2a = a ^ b ^ (b = a)
13.得到x的绝对值
(x ^ (x >> 31)) - (x >> 31);
14.得到a和b中较大的数
b & ((a-b) >> 31) | a & (~(a-b) >> 31);
15.得到a和b中较小的数
a & ((a-b) >> 31) | b & (~(a-b) >> 31);
16.判断a和b是否同正负
(x ^ y) >= 0;
17.计算i的相反数
//方式1i = ~i + 1;//方式2i = (i ^ -1) + 1;
18.判断n是否为2的若干次方
n > 0 && (n & (n - 1)) == 0;
19.拿到x的位于最右的1位
x & (-x)
20.拿到x的位于最右的0位
~x & (x+1)
21.将x的位于最右的0位设置为1
x | (x+1)
22.计算n + 1
-~n
23.计算n - 1
~-n
二、字符
1.将x转换为小写(如果原来就已经为小写则保持)
x | ' '
2.将x转换为大写(如果原来就已经为大写则保持)
x & '_'
3.大小写互换
x ^ ' '
4.得到x在字母表中的位置(大小写都适用)
x & '\x1F'
阅读全文
1 0
- 神奇的位运算
- 神奇的位运算
- 神奇的位运算
- 神奇的位运算
- 神奇的位运算
- 神奇的位运算
- 神奇的C++位运算& | << >> ^ ~ %
- zoj 3432 神奇的位运算。。
- [短码基础] 神奇的位运算
- 算法之神奇的位运算
- 神奇的位运算(bitwise trick)
- 神奇的C语言二十一:谈谈位运算
- ++运算符的神奇!
- 神奇的模运算
- 神奇的位运算——二进制中1的个数
- 神奇的位运算(不会不行啊。。。被坑了好多题了。。。。)
- 神奇的位运算(不会不行啊。。。被坑了好多题了。。。。)
- 神奇的位运算——进制转换问题(16转8)
- Activiti6.0.0 跟踪流程执行情况用红色框在流程图上标识路线跟节点
- L1范数和L2范数的区别
- JavaScript sort()方法总结
- HTTPS无法打开:curl: (35) Encountered end of file
- Linux tcpdump命令详解
- 神奇的位运算
- 【转】关于Ubuntu中passwd、shadow、group等文件
- LeetCode 455. Assign Cookies
- 上传文件
- json_encode里面经常用到的 JSON_UNESCAPED_UNICODE和JSON_UNESCAPED_SLASHES
- cannot bind 'tcp:5037'问题
- Linux 运行jar ,后台进程运行jar 和结束后台正在运行的jar
- Android面试题
- c++远征之继承篇——继承方式