JS中的位移运算

2020-09-01  本文已影响0人  璇子是兔子

快速理解位运算:

  1. 位运算比其他运算(加减乘除)更加底层,所以运算的更快,但是不是所有场景都可以用
  2. 位运算只针对整数(带符号),小数进行位运算会先自动转为整数,再进行计算
  3. 数字的表示


    ct_js_integer_binary_signed_32bits.gif

将我们一般使用的十进制整数转换为二进制,其他位数补0,这样就有32位了,正数位31为0,负数位31为1,这样就可以表示正负数了。

位运算

  1. 或|(一位为1即为1)
    1001
    0011
    结果:1011
  2. 与&(每位为1才为1)
    1001
    0011
    结果:0001
  3. 异或^(每位不同才为1)
    1001
    0011
    结果:1010
  4. 非~(取反)
    1001
    结果:0110
  5. 左移<<(向左移动,用0补位)
    3<<2
    0000 0000 0000 0000 0000 0000 0000 0011
    左移2位
    00 0000 0000 0000 0000 0000 0000 0011
    用0补位
    0000 0000 0000 0000 0000 0000 0000 1100
  6. 带符号右移>>
  1. 不带符号右移>>> --永不为负
    -3>>>2
    -3的32位:1000 0000 0000 0000 0000 0000 0000 0011
    向右移动2两位:
    10 0000 0000 0000 0000 0000 0000 0000
    高位补0:
    0010 0000 0000 0000 0000 0000 0000 0000
    结果:0010 0000 0000 0000 0000 0000 0000 0000 -----(1073741823)
上一篇 下一篇

猜你喜欢

热点阅读