[leetCode] D-13~14. Bit Manipulation, Hamming Weight


ANDビット演算(&)


ビット演算子&は、ビットの論理積の演算子です.
2つの被演算子の各位置に対応するビットが1である場合、1が返されます.
演算子によって32ビット整数に変換され、一連のビット0と1として表される.

ビート


0と1の数をバイナリで表す

演算子


&:ビットの論理乗算演算子


バイナリで表される2つの被演算子の交差を返します.a & b
  • a = 5 => 101
  • b = 3 => 011
  • 101011の各位置の最後の位置は1であるため、1を返す.

    |:ビットの論理演算子


    単寧頭皮演算子の和セットをバイナリで返します.a | b
  • a = 5 => 101
  • b = 3 => 011
  • 同じ位置に0と1がある場合は1となり、111=>7となる.

    ^:ビットの排他的論理演算子


    バイナリで表される2つの被演算子の排他的適合セットを返します.a | b
  • a = 5 => 101
  • b = 3 => 011
  • ^aとbの同じ桁数が0または1の場合は0を返し、0、1または1、0の場合は1を返します.
    簡単に言えば、各ビット数は0に等しく、異なる値は1に等しい.
    aとbの各ビット数を前から比較します.
    1,0 =>1
    0,1 =>1
    1,1 =>0
    は110=>6を返します.

    ~:ビットの否定演算子(XOR)


    現在の値をバイナリビットに変換した後、0を1、1を0に変換します.console.log(~5) // -5 console.log(~-5) // 4

    >>切り替え演算子

    <<>>の2つの演算子があります.
    a<5 => 101 5 << 3 = 101000右に移動するのも同じです.
    10 => 1010
    1010 >> 3 = 0001
    ビットの位置がその数字の長さを超えた場合.
    つまり、最大値または最小値より大きい位置に切り替えると自動的に破棄されます.

    Hamming Weight


    は、データから1個まで数えるアルゴリズムです.
    ここにはいろいろなアルゴリズムがあります.

    質問に答える


    🔆 D-13

  • [leetCode][JS] 191. Number of 1 Bits
  • [leetCode][JS] 231. Power of Two
  • 🔆 D-14

  • [leetCode][JS] 136. シングル番号-詳細回答/説明/図
  • [leetCode][JS] 190. Reverse Bits
  • Reference

  • https://blankspace-dev.tistory.com/425
  • http://shumin.co.kr/algorithm-hamming-weight-bit-count/