黑马程序员技术交流社区
标题: 关于位运算的个人总结和预算技巧跟大家分享 [打印本页]
作者: KongPro 时间: 2015-8-9 18:24
标题: 关于位运算的个人总结和预算技巧跟大家分享
(1)左移位:移动一位 ,后位补0,就是多了一位,然后所有位数为1*2的幂数都需要多一个,也就是多乘一个2,左移动n位,乘以2^n。
3 -> 011 = 1*2^1 + 1*2^0 左移一位: 011<<1 -> 0110
+1 +1
|| ||
0110 = 1*2^2 + 1*2^1
运算技巧:
3<<1 = 6 = 3*2的1次方
3<<2 = 12 = 3*2的2次方
3<<3 = 24 = 3*2的3次方
(2)右移位(符号位不变):右移一位同理,幂的次都数减少一个,右移动n位就是除以2^n.
(3)&运算,按位与运算:1&1 = 1, 1&0 = 0,0&0 =0
(4)|运算:按位或运算:1|1=1,1|0 =0, 0|0 =0
(5)^运算(异或):按位相同为0,不同为1
(6)~取反:按位去反: 0变1,1变0.
运算技巧:取反 = 原数的反值-1: 例如:
2取反 = (-2)-1 = -3
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |