位运算符汇总整理

6 篇文章 0 订阅
3 篇文章 0 订阅

1、按位与    &

规则:如果两个数相应的二进制都为1,则该位的按位与值为1,否则为0(全1为1)。

举例:12&14

12的二进制数是1 1 0 0

14的二进制数是1 1 1 0

12&14的结果为 1 1 0 0 = 12

2、按位或    |

规则:如果两个数相应的二进制只要有一个为1,则该位的按位与值为1,否则为0(有1为1)。

举例:12&14

12的二进制数是1 1 0 0

14的二进制数是1 1 1 0

12&14的结果为 1 1 1 0=14

3、按位异或    ^

规则:如果两个数相应的二进制相同为1,否则为0

举例:12&14

12的二进制数是1 1 0 0

14的二进制数是1 1 1 0

12&14的结果为 1 1 0 1 = 13

4、取反    ~

规则:对一个二进制数按为进行取反,把1变为0,0变成1。

举例:12取反

12的二进制数是1 1 0 0

12取反的结果为0 0 1 1 = 3

5、左移运算符<<

规则:把一个数的二进制数向左移N位,右边补0。

举例:12<<2

12的二进制数是1 1 0 0

12<<2的结果为 1 1 0 0 0 0 = 48 = 12×2^2

也就是说在数字没有溢出的前提下,无论正数负数左移n位都相当于乘以2的n次方。

6、右移运算符>>

规则:把一个数的二进制数向右移N位,最高位是0(正数),左边补0;最高位是1(负数),左边补1。

举例:12>>2

12的二进制数是1 1 0 0,但是在计算机中一个数的最高位应该是符号位,即0(正数)或1(负数),这里我们可以把12的二进制数简单以一个字节的方式表示为:

0 0 0 0 1 1 0 0 

标红的0即为符号位

12>>2的结果就为

0 0 0 0 0 0 1 1 = 3

再举一例:-12>>2

-12的二进制数是1 0 0 0  0 1 1 0

但这里我们不能将这个二进制数直接拿来进行右移计算,因为在计算机中数值存储的方式是以补码方式进行存储的,上面的12能够直接进行运算的原因是正数的原码、反码和补码都是一样的,关于负数的补码运算可以参考下面这篇文章:

原码、反码、补码之间的转换和简单运算_莫等闲的博客-CSDN博客_原码补码反码转换

由此可以得到-12的补码是

1 1 1 1 0 1 0 0

-12>>2的结果为

1 1 1 1 1 1 0 1 = -3

7、无符号右移>>>

规则:不管是正数还是负数,左边都补齐0。

举例:12>>>2

12的二进制数以一个字节的方式表示为:

0 0 0 0 1 1 0 0 

12>>>2的结果为:

0 0 0 0 0 0 1 1 = 3

-12的二进制数(补码)为:

1 1 1 1 0 1 0 0

-12>>>2的值为

1 1 1 1 1 1 0 1 = 253

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值