编程读书笔记:深度剖析位运算及心得总结
有好多编程初学者,对位运算理解不是很深刻,很透彻,导致运用时也不上手,因此对位运算做深度剖析并将经验总结如下:

1. <<左移位运算
就是将操作数转换成二进制码向左移动N位,然后再转换成十进制返回。二进制是“逢2进1”,所以每向左移一位相当于乘以2,故M<<N等于M乘以2的N次方。
2. >>右移位运算
由于右移左端可能会出现空位,所以涉及到补位问题。如果最左端的有效位为0,则移位后左端的空位都用0填充;如果最左端的有效位为1,则移位后左端的空位都用1填充.
3. >>>右移位运算
和>>的区别是它是忽略操作数符号的右移位,所以>>>右移位运算得到的永远是个正数。
右移过程中产生的空位始终用0填充。
4. &位与运算
比较字位的值,都为“1”,最终结果相应的字位也记为“1”,否则记为“0”。
5. | 位或运算
比较字位的值,只要有一个为“1”,最终结果相应的字位就记为“1”,否则记为“0”。
6. ~位非运算
先全部求其补码,如果是对正数进行位非运算,则结果直接等于其本身;如果是对负数进行位非运算,则结果等于其补码 + 1.
7. ^位异或运算
利用构造屏蔽变量和异或运算可以实现对特定位的取反,构成高级开关控制。
在屏蔽变量中,如果指定位为1,操作数指定为1,则结果指定为0;如果指定位为1,操作数指定为0,则结果指定为1;总之结果指定位和屏蔽变量的指定为刚好相反,而非指定位保持不变。
本文来源 我爱IT技术网 http://www.52ij.com/jishu/117.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
