'罕见'运算符

‘罕见’运算符

按位或:|

  • 转化为二进制之后,每一个位置相比较, 两个对位只要有一个为1,那么结果都为1,否则就为0

  • 例如:4|3结果是7 ,4的二进制是100, 3的二进制是011, 100|011结果是111,即7

  • |还可以取整

    3.2|1.2结果为 3 , 3的二进制是11,1的二进制是01, 11|01结果是11,即3

按位与:&

  • 转化为二进制之后,每一个位置相比较, 两个对位同时为1才得1,只要一个为0就为0
  • 例如:4&3结果是0 ,4的二进制是100, 3的二进制是011, 100|011结果是000,即0

按位异或:^

  • ^运算符跟|类似,但有一点不同的是 如果两个操作位都为1的话,结果产生0
  • 3^1结果为2 , 3的二进制是11,1的二进制是01, 11^01结果是10,即2

按位非: ~

  • 转化为二进制之后,每一个位置1变0,0变1
  • ~6结果是 -7, 6的二进制00000110,按位取反 11111001,符号位(即最高位)为1(表示负数),将除符号位之外的其他数字取反10000110,末位加1进行补码,10000111,转回十进制-7
  • ~-2结果是1,-2的二进制是10000010,按位取反 01111101,符号位(即最高位)为1(表示负数),将除符号位之外的其他数字取反00000010,末位减1进行补码00000001,转回十进制1

右移>>

  • 指定值的二进制所有位都右移规定的次数,对于其移动规则只需记住符号位不变,左边补上符号位即按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补符号位,即正数补零,负数补1
  • 7>>1的结果为3,7的二进制是00000111,右移一位00000011,转回十进制3
  • >>>无符号右移,忽略了符号位扩展, -1>>>31结果是1,<<<不存在

左移<<

  • 指定值的二进制所有位都左移规定的次数,对于其移动规则只需记住丢弃最高位,0补最低位即按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零
  • 1<<2的结果为4,1的二进制是00000001,左移二位00000100,转回十进制4

应用

使用&运算符判断一个数的奇偶

偶数 & 1 = 0

奇数 & 1 = 1

使用~~,>>,<<,>>>,|来取整

~~2.64 = 2

2.64 >> 0 = 2

2.64 << 0 = 2

2.64 | 0 = 2

2.64 >>> 0 = 2(>>>不能对负数取整)

利用^来完成比较两个数是否相等

6 ^ 6 = 0

6 ^ 非6数 != 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值