私は簡単なプログラムを持っています:
#include <stdio.h>
int main()
{
long i = 16843009;
printf ("%02x \n" ,i);
}
私は使っている %02x
形式指定子を使用して2文字の出力を取得しますが、取得する出力は次のとおりです。
1010101
私はそれが:01010101
。
%02x
は、少なくとも2桁の数字を出力することを意味し、先頭に0
が少ない場合。あなたの場合、それは7桁なので、余分な0
前に。
また、%x
はintですが、長さがあります。 %08lx
代わりに。
%x
は、16進値をフォーマットして出力するフォーマット指定子です。 intまたはlong値を提供している場合、16進数値に変換します。
%02x
は、指定した値が2桁未満の場合、0
が付加されることを意味します。
値16843009
を指定しましたが、1010101
に変換されました。これは16進値です。
文字列はフォーマット幅2よりも広いため、パディングは必要ありません。