位操作 (自 C++20 起)
源自 zh.cppreference.net
提供若干函数模板,用于访问、操作和处理单个位及位序列。
定义于头文件
<bit> | |
定义于命名空间
std | |
(C++20) |
将一个类型的对象表示重新解释为另一个类型的对象表示 (函数模板) |
(C++23) |
翻转给定整数值中的字节顺序 (函数模板) |
2的整数次幂 |
|
|
(C++20)
|
检查一个数是否为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)
|
指示标量类型的字节序
(枚举) |
注解
| 功能测试 宏 | 值 | 标准 | 功能 |
|---|---|---|---|
__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 文档
关于
位操作
|