首页 > 其他 > 详细

位运算

时间:2017-06-16 21:37:42      阅读:250      评论:0      收藏:0      [点我收藏+]

转自:http://blog.csdn.net/zmx354/article/details/19930191


学习状态压缩 必需要先搞懂位运算  这是集中位运算的符号与其作用。

名称
C/C++样式 Pascal样式 简记法则
按位与 & and 全一则一,否则为零
按位或 | or 有一则一,否则为零
按位取反 ~ not 是零则一,是一则零
按位异或 ^ xor 不同则一,同样则零
左移位 << shl a<<k等价于a*2k
右移位 >> shr a>>k等价于a/2k
优先级:not>and>xor>or;
 
 
位运算的应用:
(1) 获取一个或多个固定为的值
   如果x = 1010(10进制的10)
   我们要获取从右边第二位的值,那么我们能够这样来获取
   x&(1<<1)也就是
   x:       1010
   1<<1:         0010
   x&(1<<1):  0010
   这样我们就能够通过推断x&(1<<1)是否等于0来知道这一位是0还是1了。

   
   x&(1<<n)  就是获取第n-1位的值。 
   
(2) 把一个或多个固定为的值置为零
   如果x = 1010(10进制的10)
   我们要把从右边第二位的值置为零。那么我们能够这样来做
   x&(~(1<<1))也就是
   x            1010
   ~(1<<1)           1101
   x&(~(1<<1)) 1000
   x&(~(1<<n))  就是把x的第n-1位变成0



位运算

原文:http://www.cnblogs.com/tlnshuju/p/7029235.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!