PHPプログラミングでは、 HexDec()関数を使用して、16進数を10進数に変換します。これは、色の値、バイナリデータを扱う、または基礎となるシステムとの相互作用を扱う場合、非常に一般的な機能です。この記事では、HexDec( "000000ff")とHexdec( "ff")の2つの例に基づいて、リターン値の違いと理解について説明します。
hexDec()は、 16進数(0-9およびAF/AFの文字を含めることができる)を表す文字列パラメーターを受け入れ、それを対応する小数整数に変換します。例えば:
echo hexdec("1A"); // 出力 26
HexDec()は、 16進ストリングの前に先頭のゼロがあるかどうかに関係なく、正しく解析されます。
<?php
echo hexdec("000000FF"); // 出力 255
echo "\n";
echo hexdec("FF"); // 出力 255
?>
ご覧のとおり、両方とも255です。
これはどういう意味ですか?
16進数000000FFとFFは数値でまったく同じであり、主要なゼロは数値サイズを変更しません。
hexdec()を解析すると、文字列の数の左側にある余分なゼロは無視され、対応する小数点に直接変換されます。
主要なゼロは通常、色コードで一般的に使用される8または6ビット形式など、整列した値の形式を維持することを目的としています。
たとえば、色値のアルファチャネルの8ビット表現では、 000000FFは完全に不透明な青いチャネルを表します。
FFを書くだけで、以前のバイトパーツを省略し、データの最後の部分のみを表します。
hexDec()対応する小数値を返し、データ型は整数または浮動小数点数(値が大きい場合)です。例えば:
hexdec( "ff") => 255
hexdec( "000000ff") => 255
入力文字列の長さは異なりますが、値は等しくなります。
文字列にPHP整数の範囲を超える16進数が含まれている場合、 HexDec()は浮動小数点数を返し、精度が損なわれる可能性があることに注意してください。
HexDec()関数は、16進ストリングの以前のゼロを無視し、変換結果に影響しません。
hexdec( "000000ff")およびhexdec( "ff")は、同じ小数値255を返します。
主要なゼロは、主にフォーマットの均一性と文字列アラインメントに使用され、数値レベルでは効果がありません。
PHP文字列処理と数値変換について詳しく知りたい場合は、 gitbox.net/php -string-functionsの関連チュートリアルを参照できます。