最終更新日時(UTC):
が更新

履歴 編集

macro
<cinttypes>

PRIbN, PRIBN(C++26)

// 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>に取り込まれた。

対象とする整数型に応じて、以下のマクロが定義される (N8/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

処理系

関連項目

  • SCNbN: 固定幅整数型を2進数として入力するための変換指定子

参照