在php中为十六进制数填充零
我不知道我做错了什么。当我在一个十六进制数前面加零时,它似乎改变了这个数在php中为十六进制数填充零,php,Php,我不知道我做错了什么。当我在一个十六进制数前面加零时,它似乎改变了这个数 $number=1741; strtoupper(dechex($number)) output is 6CD sprintf('%03x', strtoupper(dechex($number)) output is 006 对于数字的零填充,只需使用sprintf,如果需要十六进制数字,则需要使用类似sprintf的内容,并使用有效的格式来显示十六进制数字 示例: 语法:sprintf(格式,arg1,arg2,a
$number=1741;
strtoupper(dechex($number))
output is 6CD
sprintf('%03x', strtoupper(dechex($number))
output is 006
对于数字的零填充,只需使用
sprintf
,如果需要十六进制数字,则需要使用类似sprintf
的内容,并使用有效的格式来显示十六进制数字
示例:
语法:sprintf(格式,arg1,arg2,arg++)
格式:
- %x-十六进制数(小写字母)
- %X-十六进制数(大写字母)
sprintf
获取hexadeimal
编号,然后使用另一个sprintf
获取零填充编号
$number = 141;
$hex = sprintf("%X", $number); //8D
$s = sprintf('%03d', $hex); // 08D
公认的答案是使用
sprintf
两次。我看不出这样做有什么价值,%x
接受与%d
相同的填充参数,因此这可以在一个函数调用中完成
$number = 141;
$hex = sprintf('%03X', $number); // 08D
见:
因此,要回答这个问题,只需删除strtoupper(dechex(…),您拥有的sprintf
就可以了
echo sprintf('%03x',$number);//06d
echo sprintf('%03X',$number);//06D
您不必使用dechex
;)只需将数字传递给sprintf,它就会以十六进制打印您的数字representation@Rizier123:谢谢:)