|
NexusForce 1.0.0
A rigorously engineered full-stack C++ backend library.
|
位操作类与函数的实现 更多...
类 | |
| struct | neforce::bit_reference |
| 位引用类 更多... | |
| struct | neforce::bitmap_iterator< IsConst, BitMap > |
| 位图迭代器 更多... | |
| class | neforce::bitmap |
| 位图容器 更多... | |
| class | neforce::bitset< N > |
| 固定大小的位集 更多... | |
函数 | |
| constexpr int | neforce::popcount64 (uint64_t x) noexcept |
| 计算64位整数中1的个数 | |
| constexpr int | neforce::clz64 (uint64_t x) noexcept |
| 计算64位整数前导零的个数 | |
| constexpr int | neforce::popcount32 (const uint32_t x) noexcept |
| 计算32位整数中1的个数 | |
| constexpr int | neforce::clz32 (uint32_t x) noexcept |
| 计算32位整数前导零的个数 | |
| constexpr int | neforce::popcount (const uintptr_t x) noexcept |
| 计算整数中1的个数 | |
| constexpr int | neforce::countl_zero (const uintptr_t x) noexcept |
| 计算整数前导零的个数 | |
| constexpr int | neforce::countl_one (const uintptr_t x) noexcept |
| 计算整数前导1的个数 | |
| constexpr int | neforce::countr_zero (const uintptr_t x) noexcept |
| 计算整数尾随零的个数 | |
| constexpr int | neforce::countr_one (const uintptr_t x) noexcept |
| 计算整数尾随1的个数 | |
| constexpr int | neforce::lowest_set_bit_pos (const intptr_t x) noexcept |
| 获取最低设置位的位置,从0开始 | |
| constexpr int | neforce::highest_set_bit_pos (const intptr_t x) noexcept |
| 获取最高设置位的位置 | |
| constexpr bool | neforce::parity32 (uint32_t x) noexcept |
| 计算32位整数的奇偶性 | |
| constexpr bool | neforce::parity64 (uint64_t x) noexcept |
| 计算64位整数的奇偶性 | |
| constexpr bool | neforce::parity (const uintptr_t x) noexcept |
| 计算整数的奇偶性 | |
| constexpr int | neforce::bit_width (const uintptr_t x) noexcept |
| 计算表示整数所需的最小位宽 | |
| constexpr uintptr_t | neforce::bit_floor (const uintptr_t x) noexcept |
| 获取不大于x的最大2的幂 | |
| constexpr uint64_t | neforce::bit_ceil (const uintptr_t x) noexcept |
| 获取不小于x的最小2的幂 | |
| constexpr bool | neforce::has_single_bit (const uintptr_t x) noexcept |
| 检查整数是否为2的幂 | |
| constexpr uint32_t | neforce::rotate_l32 (const uint32_t x, const int s) noexcept |
| 32位整数循环左移 | |
| constexpr uint32_t | neforce::rotate_r32 (const uint32_t x, const int s) noexcept |
| 32位整数循环右移 | |
| constexpr uint64_t | neforce::rotate_l64 (const uint64_t x, const int s) noexcept |
| 64位整数循环左移 | |
| constexpr uint64_t | neforce::rotate_r64 (const uint64_t x, const int s) noexcept |
| 64位整数循环右移 | |
| constexpr uintptr_t | neforce::rotate_l (const uintptr_t x, const int s) noexcept |
| 整数循环左移 | |
| constexpr uintptr_t | neforce::rotate_r (const uintptr_t x, const int s) noexcept |
| 整数循环右移 | |
| constexpr uintptr_t | neforce::bit_extract (const uintptr_t x, const int pos, const int len) noexcept |
| 从整数中提取指定位段 | |
| constexpr uintptr_t | neforce::bit_insert (const uintptr_t x, const uintptr_t bits, const int pos, const int len) noexcept |
| 向整数中插入指定位段 | |
| constexpr uint32_t | neforce::reverse_bits32 (uint32_t x) noexcept |
| 反转32位整数的位顺序 | |
| constexpr uint64_t | neforce::reverse_bits64 (uint64_t x) noexcept |
| 反转64位整数的位顺序 | |
| constexpr uintptr_t | neforce::reverse_bits (const uintptr_t x) noexcept |
| 反转整数的位顺序 | |
| constexpr uintptr_t | neforce::mask_from_to (const int from, const int to) noexcept |
| 生成从from到to的位掩码 | |
变量 | |
| constexpr uint32_t | neforce::BITMAP_WORD_SIZE = 8 * sizeof(uint32_t) |
| 每个字的位数 | |
位操作类与函数的实现
获取不小于x的最小2的幂
| x | 无符号整数 |
引用了 bit_ceil(), bit_floor() , 以及 floor().
被这些函数引用 bit_ceil().
|
constexprnoexcept |
获取不大于x的最大2的幂
| x | 无符号整数 |
引用了 bit_floor() , 以及 bit_width().
被这些函数引用 bit_ceil() , 以及 bit_floor().
|
constexprnoexcept |
向整数中插入指定位段
| x | 目标整数 |
| bits | 要插入的位段 |
| pos | 插入位置,从0开始 |
| len | 要插入的位数 |
引用了 bit_insert().
被这些函数引用 bit_insert().
|
constexprnoexcept |
计算表示整数所需的最小位宽
| x | 无符号整数 |
引用了 bit_width() , 以及 countl_zero().
被这些函数引用 bit_floor() , 以及 bit_width().
|
constexprnoexcept |
计算32位整数前导零的个数
| x | 32位无符号整数 |
引用了 clz32().
被这些函数引用 clz32(), countl_zero() , 以及 highest_set_bit_pos().
|
constexprnoexcept |
计算64位整数前导零的个数
| x | 64位无符号整数 |
引用了 clz64().
被这些函数引用 _udiv128(), clz64(), countl_zero(), neforce::uint128_t::divmod128() , 以及 highest_set_bit_pos().
|
constexprnoexcept |
|
constexprnoexcept |
计算整数前导零的个数
| x | 无符号整数 |
引用了 clz32(), clz64() , 以及 countl_zero().
被这些函数引用 bit_width(), countl_one() , 以及 countl_zero().
|
constexprnoexcept |
|
constexprnoexcept |
计算整数尾随零的个数
| x | 无符号整数 |
引用了 countr_zero().
被这些函数引用 countr_one(), countr_zero(), neforce::simd::find_first_byte() , 以及 lowest_set_bit_pos().
|
constexprnoexcept |
|
constexprnoexcept |
获取最高设置位的位置
| x | 有符号整数 |
引用了 clz32(), clz64() , 以及 highest_set_bit_pos().
被这些函数引用 neforce::simd::find_last_byte() , 以及 highest_set_bit_pos().
|
constexprnoexcept |
获取最低设置位的位置,从0开始
| x | 有符号整数 |
引用了 countr_zero() , 以及 lowest_set_bit_pos().
被这些函数引用 lowest_set_bit_pos().
|
constexprnoexcept |
生成从from到to的位掩码
| from | 起始位置(包含) |
| to | 结束位置(包含) |
引用了 mask_from_to().
被这些函数引用 mask_from_to().
|
constexprnoexcept |
计算整数的奇偶性
| x | 无符号整数 |
引用了 parity(), parity32() , 以及 parity64().
被这些函数引用 parity().
|
constexprnoexcept |
计算32位整数的奇偶性
| x | 32位无符号整数 |
引用了 parity32().
被这些函数引用 parity() , 以及 parity32().
|
constexprnoexcept |
计算64位整数的奇偶性
| x | 64位无符号整数 |
引用了 parity64().
被这些函数引用 parity() , 以及 parity64().
|
constexprnoexcept |
计算整数中1的个数
| x | 无符号整数 |
引用了 popcount(), popcount32() , 以及 popcount64().
被这些函数引用 neforce::bitset< N >::count() , 以及 popcount().
|
constexprnoexcept |
|
constexprnoexcept |
反转整数的位顺序
| x | 无符号整数 |
引用了 reverse_bits(), reverse_bits32() , 以及 reverse_bits64().
被这些函数引用 reverse_bits().
反转32位整数的位顺序
| x | 32位无符号整数 |
引用了 reverse_bits32().
被这些函数引用 reverse_bits() , 以及 reverse_bits32().
反转64位整数的位顺序
| x | 64位无符号整数 |
引用了 reverse_bits64().
被这些函数引用 reverse_bits() , 以及 reverse_bits64().
整数循环左移
| x | 无符号整数 |
| s | 旋转位数 |
引用了 rotate_l(), rotate_l32() , 以及 rotate_l64().
被这些函数引用 rotate_l().
32位整数循环左移
| x | 32位无符号整数 |
| s | 旋转位数 |
引用了 rotate_l32().
被这些函数引用 rotate_l(), rotate_l32(), rotate_r32() , 以及 XXH32().
64位整数循环左移
| x | 64位无符号整数 |
| s | 旋转位数 |
引用了 rotate_l64().
被这些函数引用 rotate_l(), rotate_l64(), rotate_r64() , 以及 XXH64().
整数循环右移
| x | 无符号整数 |
| s | 旋转位数 |
引用了 rotate_r(), rotate_r32() , 以及 rotate_r64().
被这些函数引用 rotate_r().
32位整数循环右移
| x | 32位无符号整数 |
| s | 旋转位数 |
引用了 rotate_l32() , 以及 rotate_r32().
被这些函数引用 rotate_r() , 以及 rotate_r32().
64位整数循环右移
| x | 64位无符号整数 |
| s | 旋转位数 |
引用了 rotate_l64() , 以及 rotate_r64().
被这些函数引用 rotate_r() , 以及 rotate_r64().