現在の位置: ホーム> 最新記事一覧> bindec()関数を使用すると、主要なゼロは結果に影響しますか?手動で削除する必要がありますか?

bindec()関数を使用すると、主要なゼロは結果に影響しますか?手動で削除する必要がありますか?

M66 2025-06-23

1。bindec ()の基本的な使用

PHPのbindec()は、有効なバイナリ形式である必要がある文字列パラメーターを受け入れます。つまり、 01の文字のみが含まれています。例は次のとおりです。

 <?php
echo bindec("1011"); // 出力 11
?>

この例では、 「1011」は標準的なバイナリ表現であり、結果は小数で11です。


2。主要なゼロを含むバイナリ文字列は結果に影響しますか?

答えは次のとおりです。それは影響しません

bindec()は先行0を無視し、通常は右から左に各ビットの重みを計算します。例えば:

 <?php
echo bindec("0001011"); // 依旧出力 11
?>

「0001011」に合格しても、PHPは「1011」に従って解析され、最終結果は変更されません。

これは、 bindec()を使用する場合、主要なゼロをクリーニングするために特別にコードを記述する必要がないことを意味します。


3。例:URLパラメーターから先頭のゼロを備えたバイナリ文字列を取得します

ユーザーがサビされたバイナリデータから10進数を抽出するシステムを構築しているとします。 URLは次のとおりです。

 https://m66.net/convert.php?bin=00011001

あなたはそれをこのように処理することができます:

 <?php
$binary = $_GET['bin'] ?? '0';
$decimal = bindec($binary);
echo "小数は次のとおりです: $decimal";
?>

ユーザーが「00011001」を提出したとしても、 10進数では出力がまだ正しいです。追加のltrim($ binary、 '0')操作は必要ありません。


4。特別な状況の説明

Bindec()は主要なゼロに敏感ではありませんが、注意する必要があることがいくつかあります。

  • 通過した文字列には01のみが含まれていることを確認してください。他の文字は、計算エラーまたは出力を引き起こして期待を満たすことができます。

  • ユーザーが空の文字列( "" )を入力すると、 bindec()0を返します。これを防ぐために追加の入力チェックが必要になる場合があります。