bit-manipulation 相关问题

个别位的操纵。使用的运算符可以包括按位AND,OR,XOR,NOT,左移和右移。

按位运算符和位操作

我是使用按位运算符和操作位的新手,我想知道是否有人知道一些技术或东西可以帮助我学习正确地做到这一点。

回答 1 投票 0

通过查看最后一位来检查数字是否为偶数 - 还有其他像这样的“技巧”吗?

最近我发现,如果我需要查看变量是偶数(还是奇数),我可以只查看变量的最后一位是否等于 0。这个发现在实现时取代了一些模 2 计算...

回答 7 投票 0

如何生成一个时间复杂度为 O(n) 且重复次数如 100100100…1 的二进制整数?

我正在制作一个函数,以 length:int 和 distance:int 作为输入,并输出在其二进制表示中满足以下属性的最大整数: 以1开始,结束...

回答 1 投票 0

结构/类位域打包

我想使用C++的位域功能。 然而我遇到了各种奇怪的行为,我想知道是否有 一种约束编译器的方法。 我想使用这个位字段: 班级

回答 1 投票 0

编写一个高效的 RISC-V 汇编程序,将一个十六进制数字复制到另一个寄存器中的另一个位置,而不更改其他数字

编写一个高效的RISC-V汇编程序,写入寄存器x3 数字 x4 注册 x7 数字 0,而不更改其他 x7 数字。 示例:x3 = 0xdeadbeef、x4 = 0x00000005、x7 = 0xc001cafe。 重新...

回答 1 投票 0

如何测试所有位是否已设置或未设置?

使用按位运算符如何测试整数的 n 个最低有效位是否全部设置或全部未设置。 例如,如果 n = 3,我只关心 3 个最低有效位,然后...

回答 4 投票 0

整数时间复杂度的比特计数算法(Brian Kernighan)

有人可以解释一下为什么 Brian Kernighan 的算法需要 O(log N) 来计算整数中的设置位 (1)。该算法的简单实现如下(JAVA) int count_set_bits(int n){ ...

回答 4 投票 0

提取 uint8 的前 3 位[重复]

我正在处理的结构有一个定义为 uint8_t 的字段。该规范还规定所有多字节字段均以主机端格式表示。 位 0:3 包含我需要的信息(还有...

回答 1 投票 0

从给定 DAG 中存在的每个节点开始可到达的节点总和,并限制每个节点的子节点数量

这是 XXX 波兰信息学奥林匹克竞赛第二阶段的一道题,题为“Wspinaczka”。波兰语原始问题陈述的链接。 让我们将上面的故事压缩成算法问题

回答 1 投票 0

算术右移整数,半舍入为零

我正在寻找一种有效的算法,该算法可以计算整数的算术右移,该算法四舍五入到最接近的整数,并半舍入到零行为。答案可以是正确的描述...

回答 1 投票 0

在什么情况下可能需要使用按位异或运算符?

在进行按位操作时,我在确定何时使用 XOR 运算符时遇到一些困难。按位与和或非常简单。当您想要屏蔽位时,请使用按位 AND (co...

回答 5 投票 0

如何使用低级运算将浮点数相加?

我的 C++ 代码遇到问题。 我的目标是创建一个将两个浮点数相加的函数,而不使用浮点指令。 我还需要用作低级

回答 1 投票 0

我想要 __builtin_popcountll 的两个实现

我有一些代码想要运行快速内置CPU指令popcnt(当使用适当的标志(例如g++ -mpopcnt或clang++ -march=corei7)编译__builtin_popcountll时,这可能...

回答 3 投票 0

立即获取整数中最左边活动位的索引[重复]

如何从左到右而不是从右到左扫描整数(二进制)?我知道我可以从左边开始尝试每一位,然后记录最左边的位,但是有没有更快的......

回答 5 投票 0

ArrayFire 有 popcount 或 bitcount 函数吗?

我正在尝试从 OpenCL 和 CUDA 迁移到 ArrayFire。我的函数之一使用 GPU 的 popcount() 来简化数据预处理。但我在函数列表中找不到它......

回答 1 投票 0

检查标志位java

我对标志位有疑问。 我有一个 int 变量来保存标志。首先,我为该变量设置了一些标志。稍后我需要检查该变量中设置了多少个标志。但我不知道该怎么做。

回答 5 投票 0

这个不包含任何循环的简单代码是否会使用 REP 指令在汇编中生成循环? [重复]

我正在使用这段代码来检查一个整数是否是 4 的幂: // C++版本 布尔 is_pow_4(无符号 a) { return (std::popcount(a) == 1) && (std::countr_zero(a) % 2 == 0); } // C

回答 1 投票 0

如何强制按位运算符产生无符号结果?

我正在 JavaScript 中研究 CRC32 算法,这是我的新手。 一切似乎都很顺利,直到最后一步:将校验和与 0xFFFFFFFF 进行异或。 1001010100111101101100010001000 ^

回答 2 投票 0

AVX(2)/SIMD 方式获取/设置(至 1)256 位寄存器中的单个位

当前但hacky的方法是这样的: __m256i 位集(__m256i 源,uint8_t 索引){ uint8_t pos_in_64 = 索引 % 64; uint8_t位置=索引/64; uint64_t 位掩码 = 1ULL << pos_i...

回答 1 投票 0

std::bit_cast 会产生开销吗?

我正在我的代码库中寻找 std::bit_cast 的合法用例。然而当前的 cppreference 文档让我想知道它是否可能通过创建一个(命名的)临时对象来引起开销(因此不是

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.