美文网首页
JS中的位移运算

JS中的位移运算

作者: 璇子是兔子 | 来源:发表于2020-09-01 18:04 被阅读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. 带符号右移>>
  • 负数右移:-3>>2
    -3的32位:1000 0000 0000 0000 0000 0000 0000 0011
    1、保持31位(符号位)不变,取反:
    1111 1111 1111 1111 1111 1111 1111 1100
    2、加1:
    1111 1111 1111 1111 1111 1111 1111 1101
    3、右移2位:
    1111 1111 1111 1111 1111 1111 1111 11
    4、高位补1:
    1111 1111 1111 1111 1111 1111 1111 1111
    5、保留符号位取反:
    1000 0000 0000 0000 0000 0000 0000 0000
    6、加1:
    1000 0000 0000 0000 0000 0000 0000 0001
    结果:1000 0000 0000 0000 0000 0000 0000 0001 -----(-1)
  • 正数右移:3>>2
    3的32位:0000 0000 0000 0000 0000 0000 0000 0011
    1、右移2位:
    00 0000 0000 0000 0000 0000 0000 0000
    2、高位补0:
    0000 0000 0000 0000 0000 0000 0000 0000
    结果:0000 0000 0000 0000 0000 0000 0000 0000 -----(0)
  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)

相关文章

  • JS中的位移运算

    快速理解位运算: 位运算比其他运算(加减乘除)更加底层,所以运算的更快,但是不是所有场景都可以用 位运算只针对整数...

  • Java中的位移运算

    在Java中,位移运算属于基本运算,符号是<<和>>,即向左位移和向右位移。在Java中只有整数才能位移,所以其他...

  • js 位移运算符

    2 << 3 等于 2 * 2³ = 163 << 3 等于 3 * 3³ = 81

  • 位移运算

    位移运算 无符号位移 >>> 无符号右移,无符号位运算用 0 补位 <<< 无符号左移 带符号位移 >> 带符号...

  • 一文搞明白位运算、补码、反码、原码

    在平时看各种框架的源码的过程中,经常会看到一些位移运算,所以作为一个Java开发者是一定掌握位移运算的。 正数位移...

  • 位移运算

    /*======================================================*...

  • 开发基础随笔之位运算符(Bitwise Operators)

    位运算符,属于算术运算符 按位逻辑运算符: 位移运算符: 位运算符的运算数只能是整数 位移运算符:按位左移 a<<...

  • 运算符

    位移位运算 如 UIViewAutoresizingFlexibleHeight = 1 << 4, 1.左移运算...

  • java 三种运算符理解

    >> : 右移运算符;低位移出,符号位不变 << : 左移运算符;高位移出,符号位不变 >>> : 无符号右移; ...

  • java中的运算符

    内容 算数运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 位移运算符 三元运算符java中的运算符,有以下几...

网友评论

      本文标题:JS中的位移运算

      本文链接:https://www.haomeiwen.com/subject/fhevsktx.html