位运算

作者: 江海小流 | 来源:发表于2020-04-04 20:28 被阅读0次
    1. 基本的位运算

      x << 1 // 右移
      y >> 1 // 左移
      x | y // 或
      x ^ y // 异或
      
    2. lowbit

      x & (x - 1)
      
      x - (x & (x - 1))
      
    3. 大于等于 x 的最小的 2^k (32-bit)

      // 0b1000 0000 0000 0000 0000 0000 0000 0000
      x -= 1 // 0b0111 1111 1111 1111 1111 1111 1111 1111
      x |= (x >> 1) // 0b0111 1111 1111 1111 1111 1111 1111 1111
      x |= (x >> 2) // 0b0111 1111 1111 1111 1111 1111 1111 1111
      x |= (x >> 4) // 0b0111 1111 1111 1111 1111 1111 1111 1111
      x |= (x >> 8) // 0b0111 1111 1111 1111 1111 1111 1111 1111
      x |= (x >> 16) // 0b0111 1111 1111 1111 1111 1111 1111 1111
      x += 1         // 0b1000 0000 0000 0000 0000 0000 0000 0000
      
    4. highbit?

      // 0b00101000
      y = x
      x |= (x >> 1) // 0b00111100
      x |= (x >> 2) // 0b00111111
      x |= (x >> 4) // 0b00111111
      x |= (x >> 8) // 0b00111111
      x |= (x >> 16) // 0b00111111
      x = ~(x >> 1)         // 0b11000000
      x = y & x
      

    相关文章

      网友评论

          本文标题:位运算

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