ビット操作 (C++20 以降)
From ja.cppreference.net
個々のビットやビット列にアクセス、操作、処理するための複数の関数テンプレートを提供します。
ヘッダ
<bit> | |
名前空間
std | |
(C++20) |
ある型のオブジェクト表現を別の型のものとして解釈する (関数テンプレート) |
(C++23) |
指定された整数値のバイト順を反転する (関数テンプレート) |
2の整数乗 |
|
|
(C++20)
|
数値が2の整数乗であるかどうかをチェックする
2
(関数テンプレート) |
|
(C++20)
|
指定された値以上の最小の2の整数乗を求める
(関数テンプレート) |
|
(C++20)
|
指定された値以下の最大の
2
のべき乗を求める
(関数テンプレート) |
|
(C++20)
|
指定された値を表現するために必要な最小ビット数を求める
(関数テンプレート) |
シフト (C++29 から) | |
(C++29) |
未定義動作の可能性なく左シフトを行う (関数テンプレート) |
(C++29) |
未定義動作の可能性なく右シフトを行う (関数テンプレート) |
回転 |
|
|
(C++20)
|
ビット単位の左回転の結果を計算する
(関数テンプレート) |
|
(C++20)
|
ビット単位の右回転の結果を計算する
(関数テンプレート) |
カウンティング |
|
|
(C++20)
|
最上位ビットから開始して、連続する
0
ビットの数を数える
(関数テンプレート) |
|
(C++20)
|
最上位ビットから開始して、連続する
1
ビットの数を数える
(関数テンプレート) |
|
(C++20)
|
最下位ビットから開始して、連続する
0
ビットの数を数える
(関数テンプレート) |
|
(C++20)
|
最下位ビットから開始して、連続する
1
ビットの数を数える
(関数テンプレート) |
|
(C++20)
|
符号なし整数の
1
ビットの数を数える
(関数テンプレート) |
順列 (C++29 から) | |
(C++29) |
整数のビットを反転する (関数テンプレート) |
(C++29) |
指定された長さのビットパターンを繰り返す/ブロードキャストする (関数テンプレート) |
(C++29) |
マスクを使用してオペランドのビットを圧縮する (PEXT) (関数テンプレート) |
(C++29) |
マスクを使用してオペランドからビットを展開する (PDEP) (関数テンプレート) |
エンディアン |
|
|
(C++20)
|
スカラ型のエンディアンを示す
(enum) |
注記
| 機能テスト マクロ | 値 | 標準 | 機能 |
|---|---|---|---|
__cpp_lib_bit_cast |
201806L |
(C++20) | std::bit_cast |
__cpp_lib_bitops |
201907L |
(C++20) | ビット操作 |
202606L |
(C++29) | ビット順列 | |
__cpp_lib_int_pow2 |
202002L |
(C++20) | 整数の2のべき演算 |
__cpp_lib_byteswap |
202110L |
(C++23) | std::byteswap |
関連項目
|
C documentation
for
Bit manipulation
|