現在の位置: ホーム> 最新記事一覧> PHPのbindec()関数をsubstr()と組み合わせて使用​​して、バイナリ文字列にビットレベル操作を実装する方法は?

PHPのbindec()関数をsubstr()と組み合わせて使用​​して、バイナリ文字列にビットレベル操作を実装する方法は?

M66 2025-06-12

PHPでは、バイナリ文字列を処理する場合、一部のビットを抽出または変更する必要性に遭遇することがよくあります。 bindec()関数はバイナリ文字列を10進整数に変換できますが、 substr()関数は文字列の一部を傍受するのに役立ちます。 2つを一緒に使用すると、バイナリ文字列でビットレベルの操作が可能になります。

bindec()およびsubstr()の紹介

  • bindec(string $ binary_string):int
    文字列のバイナリ表現を小数整数に変換します。例: Bindec( '101')は5を返します。

  • substr(string $ string、int $ start、int $ length = null):string
    文字列からサブストリングをカットします。例: substr( '101101'、2、3)は'110'を返します。

例:バイナリ文字列のいくつかのビットを抽出し、それらを小数点に変換します

ビット3から始まる4ビットのバイナリ番号を抽出し、小数に変換するバイナリ文字列があるとします。

 <?php
$binaryString = "1101011011"; // 元のバイナリ文字列

// 使用 substr インデックスから傍受します 2 開始長はです 4 のサブストリング(からのインデックスに注意してください0始める)
$subBinary = substr($binaryString, 2, 4); // "0101"

// 使用 bindec インターセプトされたバイナリ文字列を小数点に変換します
$decimalValue = bindec($subBinary);

echo "バイナリサブストリング: " . $subBinary . "\n";      // 出力: 0101
echo "対応する小数値: " . $decimalValue . "\n"; // 出力: 5
?>

例の説明

  • substr($ binarystring、2、4) :元の文字列の3番目の文字(インデックスカウント0からカウント)から始まり、長さは4で、 「0101」を取得します。

  • Bindec( "0101")「0101」を10進5に変換します。

Advanced:バイナリ文字列を少し変更します

抽出に加えて、バイナリ文字列の一定のビットを変更することもできます。

 <?php
$binaryString = "1101011011";

// 意思5少し(インデックスはです4)に変更します1
$pos = 4;
$newBit = '1';

// 文字列を変更します
$binaryString = substr_replace($binaryString, $newBit, $pos, 1);

echo "変更されたバイナリ文字列: " . $binaryString . "\n";
?>

要約します

substr()インターセプト文字列とbindec()変換関数を組み合わせることにより、バイナリ文字列をビットレベルで簡単に抽出および変換することができ、他の文字列操作関数はより複雑なバイナリデータ処理を実現することさえできます。