printfを使用してunsigned long long intをフォーマットするにはどうすればよいですか?

u (符号なし) 変換で ll (el-el) long-long 修飾子を使用します。 (Windows、GNU で動作します)。

printf("%llu", 285212672);

int32_t などの型を提供する inttypes.h ライブラリを使用してみてください。 、 int64_tuint64_t など。その後、次のようなマクロを使用できます:

uint64_t x;
uint32_t y;

printf("x: %"PRId64", y: %"PRId32"\n", x, y);

これにより、long と同じ問題が発生しないことが「保証」されます。 、 unsigned long long 各データ型が何ビットかを推測する必要がないためです。


%d --> int の場合

%u --> unsigned int の場合

%ld --> long int の場合 または long

%lu --> unsigned long int の場合 または long unsigned int または unsigned long

%lld --> long long int の場合 または long long

%llu --> unsigned long long int の場合 または unsigned long long


No