• reverse_bits

    let bit_reversal: Vec<u32> = (0_u32..8)
        .map(|x| x.reverse_bits() >> (32 - 3))
        .collect_vec();
    // 0 4 2 6 1 5 3 7
    /*
    000
    100
    010
    110
    001
    101
    011
    111
    */
    
    

    出題例: ARC182 B - |{floor(A_i/2^k)}|

    image.png

  • count_ones

    • popcount
  • rotate_right, rotate_left

  • leading_zeros, trailing_zero

    0b00011111_u8.leading_zeros() // 3
    0b11111000_u8.trailing_zeros() // 3
    
    // lead, trail は
    // ←を向いているイメージをするとわかりやすい