Php 十六进制短浮点数转十进制,带符号位
/** * 十六进制浮点型转为十进制 * @param String $strHex 十六进制浮点数 * @return 十进制 */ public static function hexToDecFloat($strHex) { $v = hexdec($strHex); $flag = $v >> 31; if($v >= (1 << 31)){ $v =$v & ((1 << 31) - 1); } $x = ($v & ((1 << 23) - 1)) + (1 << 23) * ($v >> 31 | 1); $exp = ($v >> 23 & 0xFF) - 127; $res = round($x * pow(2, $exp - 23),3); if($flag < 0 && $res){ $res = -$res; } return $res; }