目标是将0到255之间的十进制基数转换为十六进制基数。十六进制的基数必须写成XX的形式。因此,例如60_10=3c_16,但也5_10=05_16。
例如:
十进制数为60,十六进制数为3c。
下面的代码可以工作:
<?php
echo dechex(60);
?>
输出为:3c
宾果。
现在:为什么下面代码的输出是03而不是3c?怎样才能把它变成3c呢?
<?php
$br=60;
echo sprintf("%02x", dechex($br));
?>
正确用法
见https://www.php.net/sprintf
当你传入dec
<?php
echo sprintf('%02x', 60);
输出3c
使用
sprintf("%02x", dechex($br));
与3c
(dechex()
的结果),格式中的x
表示
x实参被视为整数,表示为作为十六进制数字(小写字母)。
所以它期望一个整数,并将其转换为3
。
x
为您做转换,不需要dechex
.....
echo sprintf("%02x", $br);