PHPでは、バイナリ文字列を処理する場合、一部のビットを抽出または変更する必要性に遭遇することがよくあります。 bindec()関数はバイナリ文字列を10進整数に変換できますが、 substr()関数は文字列の一部を傍受するのに役立ちます。 2つを一緒に使用すると、バイナリ文字列でビットレベルの操作が可能になります。
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に変換します。
抽出に加えて、バイナリ文字列の一定のビットを変更することもできます。
<?php
$binaryString = "1101011011";
// 意思5少し(インデックスはです4)に変更します1
$pos = 4;
$newBit = '1';
// 文字列を変更します
$binaryString = substr_replace($binaryString, $newBit, $pos, 1);
echo "変更されたバイナリ文字列: " . $binaryString . "\n";
?>
substr()インターセプト文字列とbindec()変換関数を組み合わせることにより、バイナリ文字列をビットレベルで簡単に抽出および変換することができ、他の文字列操作関数はより複雑なバイナリデータ処理を実現することさえできます。