CのHex CHARのフォーマット指定子
-
12-12-2019 - |
質問
sprintf
がchar
をHexにマッピングするのと同じ方法で%x
をHEXにマッピングするフォーマット指定子はありますか?
解決
はい、いいえ。
sprintf
は変数引数リストを取りますので、sprintf
が受信する前に、すべての引数がデフォルトのプロモーションを受けます。つまり、sprintf
はchar
を受信します.char
は常にint
がそれを受信する前にsprintf
に昇格します(およびshort
は、sprintf
も同様に)。
はい、int
が%x
になるため、char
を使用してそれをHEX形式に変換し、その値がshort
、int
、または%2.2x
として開始されたのか同じように機能します。入力ごとに2文字を印刷したい場合は(頻繁に)、char
を使用できます。
1点を注意してください。これは、int
が署名されている場合は、-1
へのプロモーションが同じ数値を生成します。これは通常が同じビットパターンになります。元の文字として、ffff
が16ビットの場合はint
が16ビットの場合はffffffff
の場合は通常印刷されます。符号付き整数)
他のヒント
それは同じ%x
です。char
(または可変数のパラメータを取得する他の関数)に渡される前に、int
に変換されます。
printf("%x\n", 'a');
.
sprintf
所属していません StackOverflow