You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于二进制掩码的比特分组算法需求

基于二进制掩码的比特分组算法需求

我现在需要一个算法,能根据字节B的掩码(或者叫抽选位规则),把字节A中对应位置的比特提取出来,从最低有效位(最右侧)开始,依次分组放到字节C里。给大家举个具体的例子来明确逻辑:

这里我用uint8_t类型做演示(实际场景里,源数据、掩码和目标数据的位数不一定局限于8位):

uint8_t A = 0b00110101; // 二进制值,对应十进制53
uint8_t B = 0b00011010; // 二进制值,对应十进制26,其中第1、3、4位(从右往左数,最低位为第0位)被设为1
uint8_t C = 0b00000100; // 最终得到的目标值,二进制对应十进制4

这个例子的逻辑拆解一下:

  • 首先看掩码B:它的第1、3、4位是1,这意味着我们要从A中提取这三个位置的比特
  • 提取A的对应位:A的第1位是0,第3位是0,第4位是1
  • 最后把这些提取到的比特从C的最右侧(最低有效位)开始依次填充:先把A第1位的0放到C的第0位,再把A第3位的0放到C的第1位,最后把A第4位的1放到C的第2位,这样就得到了C的二进制值00000100

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 12:45:30