位运算

按位操作是对二进制的操作,按位操作一般用在标志位、快速运算等场合

按位操作符列表
  & bitwise AND 将 expression1 和 expression2 转换为 32 位无符号整数,并对整数参数的每一位执行布尔 AND 运算。
  << bitwise left shift 将 expression1 和 shiftCount 转换为 32 位整数,并将 expression1 中的所有位向左移动由 shiftCount 转换所得到的整数指定的位数。
  ~ bitwise NOT 将 expression 转换为一个 32 位带符号整数,然后按位对 1 求补。
  | bitwise OR 将 expression1 和 expression2 转换为 32 位无符号整数,并在 expression1 或expression2 的对应位为 1 的每个位的位置上放置 1。
  >> bitwise right shift 将 expression 和 shiftCount 转换为 32 位整数,并将 expression 中的所有位向右移动由 shiftCount 转换所得到的整数指定的位数。
  >>> bitwise unsigned right shift 此运算符与按位向右移位运算符 (>>) 基本相同,只是此运算符不保留原始表达式的符号,因为左侧的位始终用 0 填充。
  ^ bitwise XOR 将 expression1 和 expression2 转换为 32 位无符号整数,并在 expression1 或expression2 中对应位为 1(但不是在两者中均为 1)的每个位的位置上放置 1。

与操作符(&):

  1.     1101
    & 1011
      ---------
       1001 

可以判断二进制的某个位上是不是为1,比如:

var a = 1<<2;//把1右移2位,二进制是:100

var b = 7;//二进制是:111

var c = b&a; //这里判断b这个数的二进制上的第3位上是不是1,如果为1 则c的值是 a ,二进制(100 )

 

左移操作符(<<):

x = 1 << 3 ;//相当于是:0001 向左移动3位,变成了:1000 (等于2的3次方 = 8)

 

左移操作符可以快速的做指数(升幂)操作,向左移动一位相当于指数+1:

比如:2<<4  就是2的5次方

 

右移操作符(>>):

二进制向右移动,相当于是降幂:

8>>2 :8的二进制:1000 向右移动2位:0010 变成了2 

右移一位相当于是开平方:6>>1 等于 4

有个特殊的右移0位:相当于取整,5.3 >>0 等于5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值