位运算

(1) 按位与 & : 二进制取位操作。 例如一个数 & 1的结果就是取二进制最末位,这可以用来判断一个数的奇偶性。如果二进制最后一位是0, 则表示偶数,1表示奇数.  (规则:相同位,都为1,则1,有一个为0,则为0)

eg:00101

     11100

=   00100

(2)按位或 | : 二进制取位操作。 例如一个数 | 1 的结果就是强行把二进制末位变成1 .  其实际意义是 求一个数最近的奇数, | 1后在减1,即可得到。:(规则:相同位,有1则1,无1则0)

(3)按位异或 ^  : 例如,一个数先^12345加密,在^12345解密(规则:相同位,不同则为1,相同则为0)

eg: 00101

      10101

=  10000

(4)<< 左移操作:a<<b代表把a转换成二进制数以后,左移b位(后面增加b个0).例如100的二进制1100100,<<2后是110010000转换成十进制是400。那么100<<2就是400.实际等于a* 2^b(a乘2的b次方)。

通常认为a<<1比a*2更快

(5)>>右移操作:a>>b 代表把a右移b位(去掉末b尾),相当于a/2^b (取整)用来代替/2操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 位运算简介 程序中所有数字在计算机的内存中都是以二进制形式存储,位运算是直接对二进制位进行操作。 C 语言中的 6...
    某尤阅读 710评论 0 0
  • C语言里位运算就是对一个比特(Bit)进行操作,比特(Bit)是计算机的一个电子元件,只有通电和断电两种状态(这也...
    Mark_Ming阅读 2,639评论 0 8
  • (一):基础篇 Matrix67: The Aha Moments 位运算简介及实用技巧(二):进阶篇(1) 位运...
    狼之独步阅读 1,024评论 0 1
  • 一、先从常用的交换两个变量的值说起。 一般情况下,交换变量值都是如下的方法: int sum = a;a = b;...
    LanWor阅读 428评论 0 1
  • 他是那样的丧。永远苦着个脸,好像从没有人看到他笑过,也许他生下来便是不会笑的。 我记不清上次是在哪里见到他,大抵是...
    志乎南也阅读 248评论 3 1