PHPでは、バイナリデータを処理して10進数に変換することは、特に基礎となるデータ処理とネットワークプログラミングにおいて、一般的な要件です。この記事では、bindec()関数とsprintf()関数を結合して、バイナリ文字列の小数に変換され、出力結果をフォーマットする方法を紹介します。
Bindec()は、バイナリ文字列を対応する小数に変換するPHP組み込み関数です。その構文はシンプルです:
int bindec ( string $binary_string )
例えば:
$binary = "1101"; // バイナリ文字列
$decimal = bindec($binary);
echo $decimal; // 出力13
bindec()は、 0と1で構成される文字列のみを受け入れます。そうしないと、0が戻ります。
sprintf()は、文字列出力をフォーマットするために使用されます。指定された数字の幅、パディング文字、小数桁など、データを指定された形式にフォーマットできます。その典型的な使用法は次のとおりです。
string sprintf ( string $format [, mixed $args [, mixed $... ]] )
例:
$num = 42;
echo sprintf("%05d", $num); // 出力 "00042",使用0幅に埋めます5
バイナリ文字列があると仮定して、最初に10進数に変換してから、固定幅の数値にフォーマットし、1000分の1分のセパレーターを追加する必要があります。
$binary = "101101"; // バイナリ文字列
// 最初に10進数に変換します
$decimal = bindec($binary);
// 使使用 sprintf 形式,假设出力宽度为6,前にゼロ
$formatted = sprintf("%06d", $decimal);
echo $formatted; // 出力 "000045"
数千桁をコンマで分離したい場合は、 number_format()を組み合わせることができます。
$binary = "111111111"; // 9個々1,小数はです511
$decimal = bindec($binary);
$formatted = number_format($decimal);
echo $formatted; // 出力 "511"
バイナリパラメータービンに渡されるURLがあるとしたら、出力を取り出してフォーマットしたいとします。
// 例URL:http://m66.net/example.php?bin=10110
$binary = $_GET['bin'] ?? '0';
$decimal = bindec($binary);
$formatted = sprintf("%08d", $decimal);
echo "バイナリ: $binary<br>";
echo "形式后的十进制: $formatted";
ここでは、バイナリ文字列を小数に変換し、ゼロが追加された8桁の数字にフォーマットします。
bindec()は、バイナリを小数に変換するために使用されます。
sprintf()はデジタル出力をフォーマットできます。
2つを組み合わせることで、バイナリデータを簡単に変換し、出力を美化できます。
また、 Number_Format()で使用して、よりフレンドリーなデジタルディスプレイを実現することもできます。
これは、基礎となるデータ、ログ表示、パラメーターの配信を処理するのに非常に役立ちます。