php16进制转10进制(浮点数)
发表于:2024-05-29 08:59:02浏览:133次
引言
php中如何把16进制转10进制(浮点数)
方法
if (!function_exists('hex_dec_float')) {
/**
* 16进制转10进制,浮点数
* @param $strHex
* @return float|int
*/
function hex_dec_float($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;
}
}
栏目分类全部>