現在の位置: ホーム> 最新記事一覧> hexdec + bin2hexを使用して、バイナリと小数を変換します

hexdec + bin2hexを使用して、バイナリと小数を変換します

gitbox 2025-05-27

データ変換は、特に基礎となる通信、暗号化アルゴリズム、またはデータ解析を扱う場合、日常のPHPプログラミングで非常に一般的な操作です。この記事では、2つのPHPネイティブ関数、 HexDec()Bin2Hex()を介してバイナリから小数まで効率的な変換を実現する方法を教えてください。

Bindecを直接使用してみませんか?

PHPはBindec()関数を提供して、バイナリ文字列を10進数に直接変換します。では、なぜHexDec()bin2hex()を使用する必要があるのでしょうか?

答えは、柔軟性と互換性の向上です。

  • bindec()は、 01で構成される純粋な文字列にのみ適しており、バイトストリームなどの多数またはバイナリの生データを扱う場合、エラーが発生しやすいです。

  • bin2hex()およびhexdec()は、低レベルのデータパケット、暗号化、またはファイル形式の解析を処理するときに、より安定して信頼できる生のバイナリ文字列を処理できます。

基本的な使用の説明

1。BIN2HEX () - 六量体へのバイナリ

この関数の関数は、バイナリ文字列( 0および1で表される文字列ではなく、PHPのバイナリ文字列であることに注意することに注意してください)が16進表現に変換することです。

 $data = "\x0A"; // 小数はです 10 バイト
$hex = bin2hex($data);
echo $hex; // 出力: 0a

2。HEXDEC () - ヘックスから小数

16進列の文字列を10進整数に変換します。

 $hex = "0a";
$decimal = hexdec($hex);
echo $decimal; // 出力: 10

バイナリから小数を実装するための組み合わせ使用

一部のAPIまたは基礎となるファイルからバイナリバイトストリームを読み取り、小数値に変換するとします。コードは次のとおりです。

 $binary = "\x01\x02"; // これは2バイトです: 00000001 00000010

$hex = bin2hex($binary);       // 出力: 0102
$decimal = hexdec($hex);       // 出力: 258

echo "小数値はです: " . $decimal;

ここでの「\ x01 \ x02」は実際にはバイナリ00000001 00000010と同等であり、組み合わせの後、それは六十分0102であり、10進数に正確に258に変換されます。

実際の使用シナリオ

温度を示すためにソケットを介して2バイトを返すハードウェアデバイスと通信するインターフェイスを開発しているとします。

 $socketData = "\x00\x7D"; // これは、六量体を意味します 007D

あなたはそれを小数値に変換して、温度読み取り値を表示します。

 $hex = bin2hex($socketData);   // 出力: 007d
$temperature = hexdec($hex);   // 出力: 125

echo "現在の温度はです: " . $temperature . "°C";

追加:ビッグエンディアンおよび小エンディアンの形式に対処する方法は?

受信したデータがリトルエンディアンでエンコードされている場合(低バイトが正面にある)、最初にバイト順序を逆にする必要があります。

 $littleEndian = "\x7D\x00";
$bigEndian = strrev($littleEndian); // ビッグエンドオーダーに目を向けます
$decimal = hexdec(bin2hex($bigEndian)); // 正しく解析されます 125

echo $decimal; // 出力: 125

まとめ

bin2hex()およびhexdec()は、PHPでバイナリデータを処理するための非常に重要なツールです。それらは、ファイルフロー、基礎となるプロトコル、データの解析、その他のシナリオの処理において特にうまく機能します。 Bindec()は単純なバイナリ文字列の処理に適していますが、 Bin2Hex()HexDec()の組み合わせは、より複雑なデータ形式に直面すると、間違いなくより強力で安定しています。

これらのデータ処理技術を詳細に学びたい場合は、次のようにアクセスできます。

<code> https://gitbox.net/php/hexdec-bin2hex-guide </code>

これらの基礎となるスキルを習得して、PHPプログラミングをより専門的かつ効率的にしましょう!