bitmask相关内容

根据位掩码合并两个位域

我想知道是否可以使用位操作来根据位掩码合并两个位域? 例如,我有两个值和一个位掩码: char mask = 0x29; // 0010 1001 char a = 0x9; // 0000 1001 original value char b = 0xE8; // 1110 1000 modified value 我想根据位掩码将b中的位设置为a的值。只有3位会受到影响。 ..
发布时间:2022-06-28 16:43:49 其他开发

将 32 位解包为 32 字节 SIMD 向量的最快方法

将 32 位存储在内存中的 uint32_t 中,将每一位解包到 AVX 寄存器的单独字节元素的最快方法是什么?这些位可以位于各自字节内的任何位置. 编辑:澄清一下,我的意思是位 0 到字节 0,位 1 到字节 1.显然字节中的所有其他位都为零.目前我能做的最好的是 2 PSHUFB 并且每个位置都有一个掩码寄存器. 如果uint32_t是位图,那么对应的向量元素应该是0或非0.(也就 ..
发布时间:2022-01-06 12:47:06 其他开发

根据掩码合并位序列 a 和 b

根据bit twiddling hacks网站,操作 unsigned int a;//在非屏蔽位中合并的值无符号整数 b;//合并掩码位的值无符号整数掩码;//1 应选择 b 中的位;0 从哪里来.无符号整数 r;//(a & ~mask) 的结果 |(b & 面具) 在这里r = a ^ ((a ^ b) & 掩码); 允许根据掩码合并两个位序列a和b.我想知道: 此操作是否有特定/ ..
发布时间:2021-12-27 22:17:08 C/C++开发

什么时候将标志存储为位掩码而不是使用关联表更好?

我正在开发一个应用程序,其中用户具有使用不同功能(例如阅读、创建、下载、打印、批准等)的不同权限.权限列表预计不会经常更改.关于如何将这些权限存储在数据库中,我有几个选项. 在什么情况下选项 2 会更好? 选项 1 使用关联表. 用户----用户 ID (PK)名称部 权限----PermissionId (PK)姓名 用户权限----用户 ID (FK)Permissio ..
发布时间:2021-12-26 20:56:16 C#/.NET

使用 sigaction(), c

我正在阅读有关 sigaction()(来源来自我的课程笔记)但我不确定我是否理解这段文字: 信号掩码仅在持续时间计算和安装信号处理程序. 默认情况下,信号“sig"也会在信号发生时被阻塞. 一旦使用 sigaction 为特定信号安装了操作,在明确请求另一个操作之前,它会保持安装状态. 这是否意味着从信号处理程序返回后恢复了默认信号掩码?另外,我是否必须在使用后重新安装处 ..
发布时间:2021-09-14 19:50:11 服务器开发

比较 SQL 中的两个位掩码以查看是否有任何位匹配

有没有办法在 Transact-SQL 中比较两个位掩码以查看是否有任何位匹配?我有一个 User 表,其中包含用户所属的所有角色的位掩码,我想选择在所提供的位掩码中具有 any 角色的所有用户.因此,使用下面的数据,角色位掩码为 6(设计师 + 程序员)应该选择 Dave、Charlie 和 Susan,而不是 Nick. 用户表----------ID 用户名角色1 戴夫 62 查理 23 ..
发布时间:2021-08-25 19:15:58 数据库

C++ 中有趣的位掩码拼图

我有一个有趣的位掩码难题,我需要帮助解决一些问题.问题来了: 11010 每一位代表一段内容的一个特征.它存储在Redis中.但是要查询它,我们需要每个组合,以便我们可以拉出密钥.所以 11010 会产生这些组合: 11010100001001011000010100001001000 有人在 C++ 中有解决方案吗? 解决方案 参见 Chess Programming Wiki ..
发布时间:2021-07-05 20:08:12 C/C++开发

如何比较(AND)代表mysql中的二进制掩码的两个字符串?

我在 mysql 中有一个表,它存储(在其他列中)一个位掩码作为字符串,例如: 000100 我想执行一个查询,该查询将AND这些字段放在一起以提供一个结果,该结果显示任何两个掩码位置都为真. 例如,考虑以下三个示例记录: id 名称掩码==========11 一 00010012 一 00011013 一 010000 这个查询是一个自连接.我正在寻找对于给定的 name ..
发布时间:2021-06-06 18:45:49 数据库

根据掩码合并位序列a和b

根据 bit twiddling hacks 网站,该操作 unsigned int a;//合并成非掩码位的值unsigned int b;//合并为掩码位的值unsigned int掩码;//1,其中应选择b中的位;0从哪里来.unsigned int r;//(a&〜mask)的结果|(b&面具)去这里r = a ^((a ^ b)& mask); 允许根据掩码合并两个位序列 a 和 ..
发布时间:2021-04-19 20:12:36 C/C++开发

是否可以使用哈希码作为位掩码来有效地存储/跟踪集合成员身份?

目前,我有一个解决方案,可以通过Object.GetHashCode获取其哈希码,然后将其存储在HashSet中,从而跟踪我感兴趣的对象. 但是,我也一直在学习有关位掩码和按位操作的知识,我对它们很感兴趣. 这是一个很好的问题,我发现与我的问题很接近我想做.但是,我似乎无法使哈希码有效地工作. 也有这个问题,但似乎当哈希码为int(32位)时,可以处理5位数字. 我确实 ..
发布时间:2020-11-22 05:19:30 C#/.NET

使用位掩码合并枚举值

我知道可以在枚举值中使用位掩码,但是我不知道如何创建它。 我有一个简单的枚举: 枚举状态 { 最小化= 0, 最大化, 最小化, 最大化 }; 状态始终为 State.minimized 或 State.maximized ,并且在调整大小时可以具有其他状态。因此可以最大化和最小化某些东西 解决方案 我将假设 myState 具有您的枚举状态的类型。 ..
发布时间:2020-10-30 03:37:15 C/C++开发

使用枚举类的C ++ 11标准一致位掩码

您可以使用enum类实现标准符合(如n3242草案的17.5.2.1.3中所述)类型的安全位掩码吗?按照我的阅读方式,如果类型T支持|,&,^,〜,| =,& =和^ =运算符,则它是位掩码,并且进一步可以执行if(l& r),其中l和r属于T类型。列表中缺少运算符!=和==,并且为了允许排序可能还想重载 ..
发布时间:2020-09-27 20:06:11 C/C++开发