位运算符总结


位运算指的是针对于二进制来进行操作的符号

1. 左移

  1. 指的是将一个数的二进制位全部左移若干位
    如 m<<n,指的是将整数m的二进制左移n位,n>=0。
    左边高位溢出舍弃,右边空位补0
    15<<2:00001111<<2====>00111100(相当于十进制的60)
  2. 在左移的过程中,如左边移除舍弃高位中不包含1的话,可以理解为左移1位,相当于该数字乘以2,左移n位相当于乘以2n。像上面的例子,15<<2的左移过程中舍弃高位中不包含1,所以结果为15*2*2=60

2. 右移

  1. 指的是将一个数的二进制位全部右移若干位。
    如m>>n,指的是将整数m的二进制右移n位,n>=0。右边的移除位被舍弃,左边的空位补0或者是符号位,如果是无符号类型补0,有符号类型补符号位

  2. 无符号整数右移示例:
    0111>>4:0000 0001 0001 0001>>4 ====>0000 0000 0001 0001(相当于006)

  3. 有符号整数右移示例:
     -4:[1000 0100] (原) ====>[1111 1011](反) ====>[1111 1100](补)
     -4>>4:1111 1100(补)>>4 ====>1111 1111(补) ====>1111 1110(反) ====>1000 0001(原)(相当于十进制的-1)

  所以对于有符号整数,右移一位相当于除以2,右移n位相当于除以2n

3. 位与运算符(and|&)

  1. &位运算符支持按位处理两个长度相同的二进制,在对应的位置上(1,1)->1;(0,1)->0;(1,0)->0;(0,0)->0。
  2. 特殊:n&1,即取n的二进制的最末位。这种方式也可以用来判断奇偶

4. 位或运算符(or||)

  1. |位运算符支持按位处理两个长度相同的二进制,在对应的位置上(1,1)->1;(0,1)->1;(1,0)->1;(0,0)->0。

5. 异或运算 ^

  1. ^运算符支持按位处理两个长度相同的二进制,在对应的位置上,相同为0,不同为1。
    (1,1)->0;(0,1)->1;(1,0)->1;(0,0)->0。

6. 取反操作~

  1. ~是一元运算符,对一个二进制数每一位执行逻辑反操作,即1->0;0->1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值