ホームページ >バックエンド開発 >PHPチュートリアル >バイナリから小数変換のためのPHPプログラム

バイナリから小数変換のためのPHPプログラム

Linda Hamilton
Linda Hamiltonオリジナル
2025-02-07 11:21:09636ブラウズ

PHP Program for Binary to Decimal Conversion

バイナリから小数変換とは、バイナリ数(つまり、0と1のみで表される数値)を同等の小数点以下(つまり、ベースとして10の形式)に変換するプロセスを指します。

この記事では、さまざまな方法を使用して、数字のバイナリ形式をPHPの小数形式に変換する方法を説明します。

バイナリを小数に変換する方法は?

バイナリ番号(バイナリ)は、マシンで使用される0および1桁のみで構成されており、10進数は人間が使用する10進数です。バイナリ数を小数点に変換するには、各バイナリ番号にその位置パワー(右側0から始まる)を掛け、すべての結果を追加します。 例1

    input:
  • binary number = 101
  • output:
  • 10進数= 5
  • 説明:

バイナリ番号101は小数点以下に変換できます。この方法は次のとおりです。 (1×2

2

)(0×21)(1×20) = 4 0 1 =5 例2

入力:

バイナリ番号= 1111
  • output:10進数= 15
  • 説明:
  • バイナリ番号1111は次のように計算できます。 (1×2
3

)(1×2

2

)(1×21)(1×20) = 8 4 2 1 =15 例3 input:

binary number = 0

    output:
  • 10進数= 0
  • 説明:
  • すべての数値の寄与値は0であるため、バイナリ番号0は10進数0に対応します。
  • 以下は、PHPでバイナリから小数変換を実行するさまざまな方法です。 ビルトイン関数を使用したバイナリから小数変換

PHPには機能が組み込まれています

bindec()

。これは、バイナリ数を小数点に変換するために直接使用できます。

実装手順

バイナリ番号を入力として定義します。

bindec()

関数を使用して、バイナリ数を小数形式に変換します。

出力の結果。
  1. 実装コード
  2. output
時間の複雑さ:

o(1)

スペースの複雑さ:
<code class="language-php"><?php
$binary = "101";

// 使用 bindec() 将二进制转换为十进制
$decimal = bindec($binary);

echo "二进制数 '$binary' 的十进制等效值为:$decimal";
?></code>
o(1)

ループを使用したバイナリから小数変換

この方法では、ループを使用してバイナリ番号を左から右に移動します。各バイナリ番号にその位置値を掛けた結果を追加することにより、小数等価を計算します。
<code>二进制数 '101' 的十进制等效值为:5</code>

実装手順

  1. 最初に、バイナリ番号を文字列入力として定義します。
  2. 次に、変数を初期化して小数点以下の結果を保存します。
  3. ループを使用して、右から左にバイナリ番号を通過します。
  4. 位置の能力による各バイナリ番号を2で複数増やし、結果に追加します。
  5. 最終的な小数の結果を出力します。

実装コード

<code class="language-php"><?php
$binary = "101";

// 使用 bindec() 将二进制转换为十进制
$decimal = bindec($binary);

echo "二进制数 '$binary' 的十进制等效值为:$decimal";
?></code>

output

<code>二进制数 '101' 的十进制等效值为:5</code>

時間の複雑さ:o(n) スペースの複雑さ:o(1)

ビット演算子を使用

この方法では、PHPでサポートされているビット演算子を使用してビットを操作します。このアプローチでは、変位を使用して小数等価を計算します。

実装手順

    最初に、10進数の変数を0に初期化します。
  1. さあ、バイナリ文字列をループして、最も重要なビットから始めます。
  2. 各ビットについて、
  3. シフトの左
  4. 結果と現在のビットの値を追加します。 すべてのビットを処理した後、最終結果を返します。
  5. 実装コード

output
<code class="language-php"><?php
$binary = "101";
$decimal = 0;
$length = strlen($binary);

// 循环遍历二进制数中的每个数字
for ($i = 0; $i < $length; $i++) {
    // 将二进制数字乘以 2^(从右起的位置)
    $decimal += $binary[$length - $i - 1] * pow(2, $i);
}

// 输出十进制等效值
echo "二进制数 '$binary' 的十进制等效值为:$decimal";
?></code>

<code>二进制数 '101' 的十进制等效值为:5</code>
時間の複雑さ:

o(n) スペースの複雑さ:o(1) バイナリから小数変換の実用的なアプリケーション

エンコードまたはデコードプロセスの一部としてバイナリを10進数に及ぼす多くのプログラミングタスクを実行するために使用されます。
  • IPアドレス、サブネットマスク、およびMACアドレスが、構成と分析のためにバイナリと小数の変換が必要な場合があります。

以上がバイナリから小数変換のためのPHPプログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。