2017-09-29 5 views
-3

PHPで10進形式に変換する必要があるバイナリ文字列データを返すAPIに接続しています。データは "66 50 235 133"のような4つの部分に分かれており、50.00付近の値に変換する必要があります(小数点の値は正確にはわかりませんが、50に近い値にする必要があります)。PHPバイナリから10進数へ

だから、私はパックを読んだ50

周りの小数値にバイナリ文字列「66 50 235 133」を変換し、php.netの機能ページを解凍する必要がありますが、これがあればわかりませんよ使用する正しい関数と使用する書式(符号付き/符号なし、エンディアンなど)あなたが提供することができる任意のヘルプまたは任意の助けが正しい方向に私を指してくれてありがとう!

答えて

1

は次のようになります。

$input = '66 50 235 133'; 
$value = unpack('g', implode('', array_map('chr', explode(' ', $input)))); 
// outputs -2.2117755600046E-35 

または:

$input = '66 50 235 133'; 
$value = unpack('G', implode('', array_map('chr', explode(' ', $input)))); 
// outputs 44.729999542236 

Endiannessによって。

この番号が50.00に近いと思われる場合は、後であると思われます。

+0

@izupdewdどのプロトコルを解読しようとしていますか? :P – Havenard

関連する問題