web-dev-qa-db-ja.com

書式指定子%02x

私は簡単なプログラムを持っています:

#include <stdio.h>
int main()
{
        long i = 16843009;
        printf ("%02x \n" ,i);
}

私は使っている %02x形式指定子を使用して2文字の出力を取得しますが、取得する出力は次のとおりです。

1010101 

私はそれが:01010101

28
user2717225

%02xは、少なくとも2桁の数字を出力することを意味し、先頭に0が少ない場合。あなたの場合、それは7桁なので、余分な0 前に。

また、%xはintですが、長さがあります。 %08lx代わりに。

43
aragaer

%xは、16進値をフォーマットして出力するフォーマット指定子です。 intまたはlong値を提供している場合、16進数値に変換します。

%02xは、指定した値が2桁未満の場合、0が付加されることを意味します。

16843009を指定しましたが、1010101に変換されました。これは16進値です。

3
PulkitRajput

文字列はフォーマット幅2よりも広いため、パディングは必要ありません。

2
PP.