-4

符号なし整数引数のバイナリ表現での出現回数。

たとえば、数値 183 は 0b10110111 であり、11 が 3 回出現します。

誰かがこれが何を意味するのかを(例を挙げて)説明または詳しく説明できますか?

4

2 に答える 2

1

もちろん。カウントを 0 から開始します。連続するビットの各ペアを調べます。11 の場合は、カウントを増やします。そうでない場合は、しないでください。

あなたの例 10110111 では、連続するペアは

10 01 11 10 01 11 11

これらのうち 3 つが 11 であるため、3 を返します。

これを実装する必要がある場合、最も簡単な方法は、最下位 2 ビットを調べて、それらが 11 であるかどうかを確認することです。そうであれば、カウンターをインクリメントします。次に、整数を 1 ビット右にシフトしてループします。すべての 1 をシフトアウトして数値が 0 になると、ループを停止できます。この時点で、カウンターは答えを保持します。これらはすべて 3 ~ 4 行のコードで実行できますが、これは実際には自分で作成する必要があります。

于 2013-02-04T05:16:51.037 に答える
0

unsigned int に (オーバーラップを含む) ビットがいくつ設定されているかをカウントします。

より技術的には、引数の i 番目のビットごとに、 を使用して0 <= i <= 30i- 番目のビットが設定され、(i+1)- 番目のビットが設定されている場合、カップルがあります。それらをすべて数えれば完了です。

于 2013-02-04T05:18:00.473 に答える