// N はビット幅 (8, 16, 32, 64 など)
#define PRIbN implementation-defined
#define PRIBN implementation-defined
// PRIbLEASTN / PRIbFASTN / PRIbMAX / PRIbPTR とその大文字版も同様
概要
<cstdint>の固定幅整数型を、std::printf系関数で2進数として出力するための変換指定子を表すマクロ。"%" PRIb16 のように文字列リテラルと連結して書式文字列を構成する。
PRIbN :0bプレフィックス (#フラグ使用時) の小文字形式PRIBN :0Bプレフィックス (#フラグ使用時) の大文字形式
C23で<inttypes.h>に追加されたマクロであり、C++26で<cinttypes>に取り込まれた。
対象とする整数型に応じて、以下のマクロが定義される (Nは8/16/32/64などのビット幅)。
| マクロ | 対象の型 |
|---|---|
PRIbN, PRIBN |
intN_t / uintN_t |
PRIbLEASTN, PRIBLEASTN |
int_leastN_t / uint_leastN_t |
PRIbFASTN, PRIBFASTN |
int_fastN_t / uint_fastN_t |
PRIbMAX, PRIBMAX |
intmax_t / uintmax_t |
PRIbPTR, PRIBPTR |
intptr_t / uintptr_t |
例
#include <cinttypes>
#include <cstdint>
#include <cstdio>
int main()
{
std::uint16_t x = 10;
// 小文字版: 0b プレフィックス
std::printf("%#" PRIb16 "\n", x);
// 大文字版: 0B プレフィックス
std::printf("%#" PRIB16 "\n", x);
}
出力
0b1010
0B1010
バージョン
言語
- C++26
処理系
- Clang: 22 ❌
- GCC: 16.1 ❌
- Visual C++: 2026 Update 2 ❌
関連項目
SCNbN: 固定幅整数型を2進数として入力するための変換指定子
参照
- P3348R4 C++26 should refer to C23 not C17
- C++26がC23を参照するようになり、これらのマクロが
<cinttypes>に追加された
- C++26がC23を参照するようになり、これらのマクロが