私はphpスクリプトで制御するeepromを持っています。この eeprom の読み取りと書き込みのパラメーターを制御できます (16 ビット), これらのいくつかは、ワードの最初または2番目のバイト (8 ビット) を 10 進数または 16 進数データで書き込む可能性のある 2 つの異なるパラメーターを制御できます. PHPで単語を書き込む方法はありますか(最初または2番目のバイトを自由に書き込む可能性があります)?
質問する
975 次
1 に答える
1
私はあなたが探していると思いますpack()
:
// Unsigned decimal values of the bytes
$firstOctet = 125;
$secondOctet = 213;
$byte = pack('C', $firstOctet);
$word = pack('C*', $firstOctet, $secondOctet);
コード内でそれらをHexpack()
として表現したい場合は、次のいずれかを行うことができます。
// Both of these are identical to "$firstOctet = 125;"
$firstOctet = 0x7D;
$firstOctet = hexdec('7D');
または、次の構文を使用して文字列でリテラル Hex バイトを宣言できます。
// These should produce the same results as the pack() example
$byte = "\x7D";
$word = "\x7D\xD5";
読み込んでいるバイトを処理のために整数に変換する必要がある場合は、補完関数を使用できますunpack()
。
$word = "\x7D\xD5";
$bytes = unpack('C*byte', $word);
print_r($bytes);
/*
Array
(
[byte1] => 125
[byte2] => 213
)
*/
于 2012-05-24T10:38:15.937 に答える