ホームページ  >  記事  >  バックエンド開発  >  整数に設定されているビット数を数えるPHPプログラム

整数に設定されているビット数を数えるPHPプログラム

PHPz
PHPz転載
2023-08-22 11:41:13879ブラウズ

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

バイナリ コードは、2 進数体系を使用して情報またはデータを表すシステムです。すべての値を表すのに、通常は 0 と 1 の 2 つの数値のみを使用します。バイナリ コード内の各数値はビット (バイナリ ディジットの略) と呼ばれます。

バイナリ コードでは、各数値は 2 の累乗を表します。右端の数字から始めて、右から左に向かって 2 の累乗が増加します。たとえば、8 ビットのバイナリ コードでは、右端のビットは 2^0 (1) を表し、次のビットは 2^1 (2)、次のビットは 2^2 (4) を表します。

###例###

10 進数の 42 を 2 進数コードに変換してみましょう。 42 を 2 進数に変換するには、継続的に 2 で割り、商がゼロになるまで余りを追跡します。

次に、段階的なプロセスを示します:

######最初の一歩######

42 ÷ 2 = 21、余りは 0 ######第二段階######

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 は、2 進コードでは 101010 として表されます。

Setbit とは何ですか? バイナリ コードの文脈では、セット ビットは 1 に設定された 2 進数 (ビット) を指します。一方、クリア ビットとは、0 に設定された 2 進数 (ビット) を指します。 ###例###

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

PHP プログラム: 整数内の設定されたビット数を数える

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

###例### リーリー ###出力### リーリー

方法 2: 再帰的方法

リーリー ###出力### リーリー ###結論###

要約すると、再帰的メソッドを使用してすべてのビットをループすることで、整数内の設定ビット数 (1) をカウントできます。ループ方式では、while ループを使用して整数の各ビットを反復処理します。カウンタ変数を初期化し、数値が 0 に達するまで繰り返します。ループ内で、ビット単位の AND 演算子を使用して 1 とビット単位の AND を実行し、最下位ビットをチェックします。それが 1 に等しい場合、カウンターをインクリメントします。次に、1 位を右に移動します。このプロセスは、すべてのビットがチェックされ、最終的なカウントが返されるまで続きます。

再帰的メソッドの場合、整数を入力として受け取る再帰的関数を定義できます。関数内では、ビットごとの AND 演算子と 1 を使用して最下位ビットをチェックします。それが 1 に等しい場合、カウンターをインクリメントします。次に、数値を 1 桁右にシフトし、更新された数値で関数を再帰的に呼び出します。基本的なケースでは、数値が 0 に達するとカウンターの値を返します。設定したビットを0になるまで再帰的に計算する方法です。どちらの方法も、プログラマの特定のニーズや好みに応じてさまざまな実装オプションを使用して、整数内のセット ビットをカウントする方法を提供します。

以上が整数に設定されているビット数を数えるPHPプログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。