符号なし整数引数のバイナリ表現での出現回数。
たとえば、数値 183 は 0b10110111 であり、11 が 3 回出現します。
誰かがこれが何を意味するのかを(例を挙げて)説明または詳しく説明できますか?
符号なし整数引数のバイナリ表現での出現回数。
たとえば、数値 183 は 0b10110111 であり、11 が 3 回出現します。
誰かがこれが何を意味するのかを(例を挙げて)説明または詳しく説明できますか?
もちろん。カウントを 0 から開始します。連続するビットの各ペアを調べます。11 の場合は、カウントを増やします。そうでない場合は、しないでください。
あなたの例 10110111 では、連続するペアは
10 01 11 10 01 11 11
これらのうち 3 つが 11 であるため、3 を返します。
これを実装する必要がある場合、最も簡単な方法は、最下位 2 ビットを調べて、それらが 11 であるかどうかを確認することです。そうであれば、カウンターをインクリメントします。次に、整数を 1 ビット右にシフトしてループします。すべての 1 をシフトアウトして数値が 0 になると、ループを停止できます。この時点で、カウンターは答えを保持します。これらはすべて 3 ~ 4 行のコードで実行できますが、これは実際には自分で作成する必要があります。
unsigned int に (オーバーラップを含む) ビットがいくつ設定されているかをカウントします。
より技術的には、引数の i 番目のビットごとに、 を使用して0 <= i <= 30
、i
- 番目のビットが設定され、(i+1)
- 番目のビットが設定されている場合、カップルがあります。それらをすべて数えれば完了です。