PHP 内置函数
转十进制转二进制
decbin()
二进制转10进制
bindec()
var_dump(bindec(decbin("0.1")));
这里转换结果是 0 ,难道不能进行小数的转换吗?
有什么解决方法吗?
PHP 内置函数
转十进制转二进制
decbin()
二进制转10进制
bindec()
var_dump(bindec(decbin("0.1")));
这里转换结果是 0 ,难道不能进行小数的转换吗?
有什么解决方法吗?
为什么不考虑直接将十六进制转换为2进制呢?
这种情况也可以考虑将小数乘以10的倍数使其成为整数,再进行进制转换
base_convert — 在任意进制之间转换数字
string base_convert( string $number, int $frombase, int $tobase)
十进制转换为16进制 支持浮点数
$dec = 1.12;
echo base_convert($dec,10,16);
小数部分会当做整数来处理
php自带的函数只能转换整数不能正确转换小数,如果是小数需要自己拆分整数部分和小数部分,按转换规则分别处理后再合并。
function hex_dec($str)
{
list($int,$hex)=explode('.',$str);
$temp=0;
for($i=0;$i < strlen($hex); $i++)
{
$digit=hexdec(substr($hex,$i,1))/16;
$temp += $digit/pow(16,$i);
}
return hexdec($int)+$temp;
}
function dec_hex($str)
{
$int = intval($str);
$hex = $str - $int;
$float = '';
while($hex!=0){
$temp = $hex*16;
$float .= dechex(intval($temp));
$hex = $temp - intval($temp);
}
$float = !empty($float)?'.'.$float:'';
return dechex($int).$float;
}
echo dec_hex("58.11");
echo '<br/>';
echo hex_dec("3a.1c28f5c28f5c");
1 回答4.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答1.4k 阅读✓ 已解决
1 回答1.9k 阅读✓ 已解决
792 阅读
确实不能转换小数。