bit-manipulation 相关问题

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

如何在 CUDA 中有效地设置位向量的位?

任务类似于如何并行有效地设置位向量的位?,但是对于 CUDA。 考虑其中有 N 位的位向量(N 很大,例如 4G)和 M 个数字的数组(M 也很大,例如...

回答 1 投票 0

计算按位 和 元素等于零的子数组

假设我们有一个数字列表 [7,2,9,8,6,12,109,28,14,19] 我想找到一种有效的方法来计算该列表的所有子列表,这些子列表按位等于零 喜欢: [2,5] # 2&5 ...

回答 2 投票 0

使用更少的内存在两个矩阵之间执行异或运算的最有效方法

我想通过节省内存使用来在两个2D numpy.ndarray之间执行异或运算。对于每一行 u_values,我想对每一行 v_values 执行异或运算,依此类推。对于e...

回答 1 投票 0

这种基于流的数组方法如何按 1 位的数量对 int[] 进行排序?

类解决方案{ 公共 int[] sortByBits(int[] arr) { return Arrays.stream(arr).boxed().sorted((a, b) -> Integer.bitCount(a) == Integer.bitCount(b) ? a - b : Integer.bitCount(a) - In.. .

回答 3 投票 0

pkzip APPNOTE 中的“幻数”(0xdebb20e3) 是什么?

在 APPNOTE.txt 的第 4.4.7 (CRC-32) 节中,您可以找到 CRC 的“幻数”是 0xdebb20e3。 然而,CRC-32 的正则多项式 (0x04C11DB7) 工作正常。位反映,是0xEDB88...

回答 1 投票 0

是否有一种通用方法来优化区分两个任意整数集的按位表达式?

对于上下文,我需要为 0 到 7 之间的整数编写一个测试,对于 {1,3,4,6} 计算结果为 true,对于 {0,2,5,7} 计算结果为 false。我想了几分钟是否有可能......

回答 1 投票 0

如何仅使用 + - & | 向右移动并测试 >、< ==

之前询问过,但由于缺乏细节而被关闭。所以这里有更多信息 我正在研究 cp,没有轮换或轮换。 它支持 加减法 逻辑 & 和逻辑或 条件跳转...

回答 1 投票 0

如何删除 C 中的标志?

有一个变量包含一些标志,我想删除其中一个。但我不知道如何删除它。 这是我设置标志的方法。 my.emask |= ENABLE_SHOOT;

回答 4 投票 0

语句 if (counter & (1<<j)) mean and how does it work?

我正在研究子序列的算法。 该声明的含义是什么: 如果(计数器&(1< 我正在研究子序列算法。 这句话的含义是什么: if (counter & (1<<j)) 在以下计划的范围内: void printSubsequences(int arr[], int n) { unsigned int opsize = pow(2, n); for (int counter = 1; counter < opsize; counter++) { for (int j = 0; j < n; j++) { if (counter & (1<<j)) cout << arr[j] << " "; } cout << endl; } } 声明: if (counter & (1<<j)) 检查 j 的第 counter 位是否已设置。更详细地说,1 << j使用1的移位来生成位掩码,其中仅设置第j位。然后 & 运算符屏蔽 j 的 counter 位;如果结果不为零(这意味着设置了 j 的第 counter 位),则满足条件。 考虑以下示例。如果counter为320,则其二进制表示为101000000,表示第6位(对应于64的值)被设置;让我们测试一下。位掩码是通过移位 1 生成的,其二进制表示形式为 000000001,向右移动 6 位,得到二进制值 001000000。 counter的值,即: 101000000 与 & 组合,即按位与运算符,位掩码如下: 101000000 & 001000000 --------- 001000000 值001000000再次对应于值64;然而,这在这里并不重要,重要的是它不为零(因为它有一个非零位,即我们打算检查的位)。总共条件 if ( 64 ) 很满意。在 C 的语义中(不具有本机布尔数据类型),当使用 if 检查时,任何非零值都被视为 true。 ---首先for循环运行i=0到i<8 .(explanation - https://www.geeksforgeeks.org/power-set/) ---第二次循环运行 i=0 到 i<3 (for {a,b,c}) 1.我们假设第一个循环 i=0 : j=0,1,2 in this case (0 & (1<<0)),(0 & (1<<1)),(0 & (1<<2)) But 0 with & is always 0 so all instance are false for first loop. 让我们考虑第二个循环 i=1 : j=0 int 这种情况 (1 & (1<<0)) it is true so j=0 and arr[0]=a print. j=1,2 为假,因为 ( 1 & (1<<1)) & (1 & (1<<2)) are false. 让我们进行第二个循环 i=2 : j=1,在这种情况下 (2 & (1<<1)) it is true so j=1 and arr[1]=b print. j=0,2 为假,因为 ( 2 & (1<<0)) & (2 & (1<<2)) are false. 让我们考虑第二个循环 i=3 : j=0,2 int 这种情况 (3 & (1<<2)) & (3 & (1<<2)) it is true so j=0,2 and arr[2] =a & c print. j=1 为假,因为 ( 3 & (1<<1)) are false. 让我们考虑第二个循环 i=4 : j=2 int 这种情况 (4 & (1<<2)) it is true so j=2 and arr[2] =c print. j=0,1 为假,因为 ( 4 & (1<<0)) & (4 & (1<<1)) are false. 就这样继续下去...... 语句 if (counter & (1< 其工作原理如下: (1< 计数器 & (1< 如果按位与运算的结果非零,则表示计数器的第 j 位设置为 1。 let counter = 10; // Binary representation: 1010 令 j = 2; if (计数器 & (1 << j)) { console.log(The ${j}-th bit of counter is set.); } 别的 { 控制台.log(The ${j}-th bit of counter is not set.); } - ==========

回答 3 投票 0

反转Python整数的位

给定一个十进制整数(例如 65),如何反转 Python 中的底层位?即以下操作: 65 → 01000001 → 10000010 → 130 看来这个任务可以分解为……

回答 14 投票 0

如何清除最高有效位?

如何将 int 中的最高有效位从 1 更改为 0?例如,我想将 01101 更改为 0101。

回答 8 投票 0

如何将1字节数据转换为2字节数据

我想将1字节的数组元素转换为2字节 例如 arr[大小] = {0x1F}; 所以,我希望 0x1F 将存储在 第二个数组就像, arr_2[大小] = {0x01, 0x0f} 我尝试过像以下方式... 对于(...

回答 4 投票 0

为什么位向量 a = [01101001] 编码集合 A = {0, 3, 5, 6}?

我正在阅读《计算机系统:程序员的视角》,我不明白为什么位向量 a = [01101001] 编码集 A = {0, 3, 5, 6}? 我做了一些谷歌搜索,但没有找到任何有用的东西......

回答 1 投票 0

相当于按位运算的数学方程

我正在阅读的一段C++代码是 整数x = 10; 整数 r = 5; 自动 bb = x << (r & 0x1); where bb reads 20. I understand how bitwise operation works, but I have difficulty to explain its

回答 5 投票 0

快速BCD加法

这个问题的灵感来自于我最近在 Stackoverflow 上遇到的一个问题。它提醒我,在 x86-64 ISA 开发的早期,我曾编写过用于 BCD 加法的 32 位 x86 代码...

回答 1 投票 0

将左移 LSB 位转换为 1

我需要在左移中将LSB 0转换为1: x=5; int num = 0x02;//0b00000010 移位值 = 数字 << x;// 0b01000000 shiftVal should convert to 0b01011111

回答 1 投票 0

如何使用每个玩家的位板在 Connect 4 游戏中查找 7shape?

我正在寻找的形状如下所示: 我有两个位板,代表 Connect 4 游戏中的两个玩家。使用的位是从 0 到 48 的位,因此总共 49 位。代表...

回答 1 投票 0

IEEE 乘法与2 的幂相乘吗?

请确认我对IEEE浮点数的理解。 我相信如果我有两个数字: a = 2^ea × ma ← "数学 ×" b = 2^eb × mb 那么他们的乘积 a * b 与 ((a * ...

回答 1 投票 0

按位检查数字是否为-1

我必须创建一个函数来检查输入数字是否为-1。这是要求 isTmin - 如果 x 是最小值(二进制补码),则返回 1,否则返回 0 法律行动:! 〜&^...

回答 3 投票 0

数据表说EEPROM地址是0xA0,但它在0x50上对我有用。右移位有特殊原因吗?

我使用SFP光收发器模块的EEPROM读取设备数据。该图像显示 EEPROM 的地址是 0xA0,但它对我不起作用。当我输入地址时它起作用了...

回答 1 投票 0

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