bit-manipulation 相关问题

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

按位非和逻辑非:为什么“~true == true”和“~false == false”

我有一个关于按位非和逻辑非的问题,希望有人能为我回答。 所以我知道以下作品: !true == false !假==真 我认为按位不能做到这一点...

回答 5 投票 0

按位非和逻辑非:为什么 ~true == true 和 ~false == false

我有一个关于按位非和逻辑非的问题,希望有人能为我回答。 所以我知道以下作品: !true == false !假==真 我以为按位不能做...

回答 5 投票 0

std::bitset<N>::count 与 __builtin_popcount

比较以下两个表达式 std::bitset<8>(5).count() __builtin_popcount(5) 哪个更好?

回答 3 投票 0

如何在32位ARM汇编器中有效地右旋转64位值?

ARM7 命令集 (ARM7TDMI = ARMv4T) 提供了在汇编程序中将 32 位值右旋转任意量的有效方法。对于操作的第二个操作数,它甚至是“免费的”......

回答 2 投票 0

在 JavaScript 中高效计算整数的位数

假设我有一个整数 I,想要获取二进制形式的 1 的计数。 我目前正在使用以下代码。 Number(i.toString(2).split("").sort().join("")).toString().length; 是...

回答 12 投票 0

如何在ARM7汇编器中有效地右旋转64位值?

ARM7 命令集提供了在汇编程序中将 32 位值右旋转任意量的有效方法。对于操作的第二个操作数,通过将 ror #n 指定为移位器,它甚至是“免费”的

回答 3 投票 0

如何取消设置最右边的 N 个设置位

有一个相对知名的技巧可以取消设置最右边的一位: y = x & (x - 1) // 0b001011100 & 0b001011011 = 0b001011000 :) 我发现自己有一个紧密的循环来清除...

回答 1 投票 0

按位运算改变位的顺序

所以我的练习是改变位的顺序: 7 6 5 4 3 2 1 0 将 3 2 7 6 1 0 5 4 我正在努力解决这个问题。我正在尝试使用 rol 方法来旋转它们,这样我会得到 3 2 1 ...

回答 4 投票 0

谁能简化这个按位表达式吗?

正在使用 C++ 进行 ECS 实现,我渴望可以简化这个表达式,但老实说,我对按位运算没有足够的信心来弄清楚: (x & y) == x 我...

回答 2 投票 0

如何检查给定位中的单个位是1还是0?

如何检查位数中的数字是1还是0? 例如: 给出的数字:0b00001101 位索引 0 的位置 = true 位索引 1 的位置 = false 我一直在确定...

回答 2 投票 0

如何对 ARM 中存储在两个 32 位寄存器中的 64 位数字执行算术右移?

我正在尝试用ARM汇编语言实现booth的乘法算法。 算法 2:将两个 32 位数字相乘以产生 64 位结果的 Booth 算法 数据:乘数...

回答 1 投票 0

获取前2个连续1位的索引的有效方法

我有这个二进制表示: 0b0110010 对于 gcc,有一个内置函数 __builtin_ffs,它将返回 1 加最低有效 1 位的索引,在我的示例中返回 2...

回答 1 投票 0

折叠 __mask64 又名 64 位整数值,计算已设置所有位的半字节?

由于一些 AVX512 操作,我有一个 __mask64: __mmask64 mboth = _kand_mask64(lres, hres); 我想计算其中所有位均已设置(0xF)的半字节数。 这么简单...

回答 1 投票 0

如何获取给定十进制数的第n位?

我试图获取给定数字的第n位(从数字的二进制表示形式的末尾开始(从0开始))。 举例来说,假设我们有十进制数 7 并且想要得到 t...

回答 1 投票 0

将 uint64_t {0,1} 映射到 float 64 {1.0,-1.0} 的最快方法是什么?

我有一个名为 uintflag 的 64 位无符号整数 uint64_t 标志变量,它只能保存值 0 或 1。 我需要将 0 转换为 1.0,将 1 转换为 -1.0。此转换来自 uint64_t(64 位)...

回答 1 投票 0

将 uint64_teger {0,1} 映射到 float 64 {1.0,-1.0} 的最快方法是什么?

我有一个名为 uintflag 的 64 位 uint64_t 标志变量,它只能保存值 0 或 1。 我需要将 0 转换为 1.0,将 1 转换为 -1.0。此转换是从 uint64_teger(64 位)到 double (...

回答 1 投票 0

用位移操作代替分支语句

我正在编写一个图像二值化算法,它只需将每个像素的亮度值(灰度图像)转换为黑色或白色。目前对每个像素进行二值化的算法大致是...

回答 5 投票 0

使用移位和加/减除以常数

大家好,我正在尝试仅使用移位和加/减来除以无符号常量 - 如果它是乘法,我对此没有问题,但我对除法有点困惑。 为了考试...

回答 4 投票 0

查找区间内有效位数最少的数字

给定下限和上限,这些边界内有效位数最少的数字是多少? 有效位数是most和l的位置之差...

回答 1 投票 0

位屏蔽和垃圾位

在 Herbert Schildt 的《Java:完整参考》中的“使用按位逻辑运算符”主题中,Schildt 进行了连词 ~a & 0x0f 以便“减少其值 [~a]...

回答 1 投票 0

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