PHP で使用される浮動小数点演算関数とは何ですか?
まずは百度百科の浮動小数点演算の例をご覧ください
http://wenku.baidu.com/view/9ba120a108a1284ac85043d8.html?re=view
つまり、16 進数の 42C88000
は、IEEE754 標準の 32 ビット浮動小数点形式を使用して計算され、結果は 100.25 と等しくなります
16 進数の C1C90000 は、-25.125 と計算されます
既製の関数はありますか?
書くのを手伝ってください 例、ありがとう
ディスカッションへの返信 (解決策)
function hexToDecFloat($strHex) { $v = hexdec($strHex); $x = ($v & ((1 << 23) - 1)) + (1 << 23) * ($v >> 31 | 1); $exp = ($v >> 23 & 0xFF) - 127; return $x * pow(2, $exp - 23);}$a='42C88000 ';echo hexToDecFloat($a);
は 100.25 に等しい
$s = '42C88000';echo current(unpack('f', pack('V', hexdec($s))));
$s = 'C1C90000';echo current(unpack('f', pack('V', hexdec($s))));
また、
$s = 'C1C90000';echo current(unpack('f', pack('H*', join('', array_reverse(str_split($s, 2))))));
$a = 'C1C90000';echo hexToDecFloat($a);
改善する必要があります
モデレーターさん、ご協力ありがとうございます