PHPのbindec()は、有効なバイナリ形式である必要がある文字列パラメーターを受け入れます。つまり、 0と1の文字のみが含まれています。例は次のとおりです。
<?php
echo bindec("1011"); // 出力 11
?>
この例では、 「1011」は標準的なバイナリ表現であり、結果は小数で11です。
答えは次のとおりです。それは影響しません。
bindec()は先行0を無視し、通常は右から左に各ビットの重みを計算します。例えば:
<?php
echo bindec("0001011"); // 依旧出力 11
?>
「0001011」に合格しても、PHPは「1011」に従って解析され、最終結果は変更されません。
これは、 bindec()を使用する場合、主要なゼロをクリーニングするために特別にコードを記述する必要がないことを意味します。
ユーザーがサビされたバイナリデータから10進数を抽出するシステムを構築しているとします。 URLは次のとおりです。
https://m66.net/convert.php?bin=00011001
あなたはそれをこのように処理することができます:
<?php
$binary = $_GET['bin'] ?? '0';
$decimal = bindec($binary);
echo "小数は次のとおりです: $decimal";
?>
ユーザーが「00011001」を提出したとしても、 10進数では出力がまだ正しいです。追加のltrim($ binary、 '0')操作は必要ありません。
Bindec()は主要なゼロに敏感ではありませんが、注意する必要があることがいくつかあります。
通過した文字列には0と1のみが含まれていることを確認してください。他の文字は、計算エラーまたは出力を引き起こして期待を満たすことができます。
ユーザーが空の文字列( "" )を入力すると、 bindec()が0を返します。これを防ぐために追加の入力チェックが必要になる場合があります。