現在の位置: ホーム> 最新記事一覧> PHPを使用して整数のセットビット数を計算する方法

PHPを使用して整数のセットビット数を計算する方法

M66 2025-06-20

バイナリコードとは何ですか?

バイナリコードは、バイナリ番号システムを使用して情報またはデータを表すシステムです。すべての値を表すために、通常は0と1の2つの数値のみを使用します。バイナリコード内の各数値は、少し呼ばれます(バイナリ番号の略語)。

バイナリコードでは、各数値は2のパワーを表します。右端の数値から始まると、2のパワーが右から左に増加します。たとえば、8ビットのバイナリコードでは、右端のビットは2 0 (1)を表し、次のビットは2 1 (2)などを表します。

バイナリ番号の例

10進数42をバイナリコードに変換しましょう。 42をバイナリに変換するには、それを連続的に2で割って、商がゼロになるまで残りを追跡します。

段階的なプロセスは次のとおりです。

ステップ1 :42÷2 = 21、残りは0です

ステップ2 :21÷2 = 10、残りは1です

ステップ3 :10÷2 = 5、残りは0です

ステップ4 :5÷2 = 2、残りは1です

ステップ5 :2÷2 = 1、残りは0です

ステップ6 :1÷2 = 0、残りは1です

バイナリ表現を取得するには、下から開始し(最後の残り)、下から残りを読み取ります。 42のバイナリコードは101010です。したがって、10進数42はバイナリコードで101010として表されます。

setbitとは何ですか?

バイナリコードのコンテキストでは、設定ビットは1に設定されたバイナリ番号(ビット)を参照してください。一方、クリアビットは0に設定されたバイナリ数(ビット)を指します。

ビットの例を設定します

たとえば、バイナリコード101010には、3つのセット(1の対応する位置)と3つのクリアビット(対応する位置0)があります。

PHPプログラム:整数のセットビット数を計算する

方法1:整数のすべてのビットをループします

これは、ループトラバーサル法を使用してセットビットの数を計算するPHPコードの例です。

<?php
// Function to get no of set bits in binary representation of positive integer n
function countSetBits($n)
{
    $count = 0;
    while ($n) {
        $count += $n & 1;
        $n > > = 1;
    }
    $ countを戻るします。
}

//ドライバーコード
$ number = 12;
エコー「$ numberのセットビット数:」。 countsetbits($ number);
?>

出力

12:2のセットビット数

方法2:再帰方法

再帰的な方法を使用して、セットビットの数を計算するPHPコードの例を次に示します。

<?php
// PHP implementation of recursive approach to find the number of set bits
function countSetBits($n)
{
    // base case
    if ($n == 0)
        return 0;
    else
        // if last bit set, add 1 else add 0
        return ($n & 1) + countSetBits($n > > 1);
}

//ドライバーコード
$ n = 123;
エコー「$ nのセットビット数は二流のとおりです。」。 countsetbits($ n);
?>

出力

123のセットビット数は二流のとおりです

要約します

要約すると、再帰的な方法を使用して、すべてのビットをループして、整数のセットビット(1)の数を計算できます。ループ方式には、時間ループを使用して整数の各ビットを反復することが含まれます。カウンター変数を初期化し、数値が0になるまで反復します。ループ内で、ビットワイズと演算子を使用してビットワイズと操作を実行して、最小のビットを確認します。 1に等しい場合は、カウンターを増やします。次に、数値を1桁右に移動します。このプロセスは、すべてのビットがチェックされ、最終カウントが返されるまで続きます。

再帰的な方法の場合、整数を入力としてとる再帰関数を定義できます。関数内では、オペレーターとビットワイズ、1を使用して最小のビットを確認します。 1に等しい場合、カウンターを増やします。次に、数値を1ビット右にシフトし、更新された数値を使用して関数を再帰的に呼び出します。基本的なケースは、数値が0になると、カウンターの値を返すことです。この方法は、数が0になるまで設定ビットを再帰的に計算します。

どちらの方法でも、整数のセットビットを計算する方法を提供し、プログラマーはニーズと好みに基づいて異なる実装を選択できます。