仅仅只是将小数部分显示为十六进制而已,例如:1.4142135623731 <=> 6a09e667
/**
* 十进制小数 转 十六进制显示
* @param float $decimal
* @param int $len 16进制长度
* @return string
*/
function dec2hex(float $decimal, $len = 8) {
$hex = '';
$count = 0;
# 只取小数部分
$decimal = fmod($decimal, 1);
while ($count++ < $len) {
$dec16 = $decimal * 16;
# 取整 转16进制
$hex .= dechex((int)$dec16);
# 取小数部分
$decimal = fmod($dec16, 1);
}
return $hex;
}
网友评论