PHP sprintfで数字を16進文字に変換

$str = sprintf("%dは16進数で0x%X", $num, $num);

ネタ元