出力変換指定子について教えてください

printf("16進のffを10進に変換すると%dです\n", 0xff);

実行結果→16進のffを10進に変換すると15です

%dなどの出力変換指定子というのは、数値を文字列に変換して出力している、という理解でよろしいのでしょうか?
それとも数値を数値のまま、文字列の間に挟み込んで出力してくれている、という理解の方が合っていますでしょうか?