Skip to content

asc_set_nthbit

产品支持情况

  • Ascend 950PR/Ascend 950DT:支持
  • Atlas A3 训练系列产品/Atlas A3 推理系列产品:支持
  • Atlas A2 训练系列产品/Atlas A2 推理系列产品:支持
  • Atlas 200I/500 A2 推理产品:不支持
  • Atlas 推理系列产品AI Core:不支持
  • Atlas 推理系列产品Vector Core:不支持
  • Atlas 训练系列产品:不支持

功能说明

计算一个uint64_t类型数字的指定二进制位置为1,其余位保持不变。

函数原型

C++
__aicore__ inline uint64_t asc_set_nthbit(uint64_t bits, int64_t idx)

参数说明

表1 参数说明

参数名输入/输出描述
bits输入输入数据。执行此计算后输入数据不变。
idx输入位索引,表示需要设置为1的位的位置。取值范围为:[0, 63]。

返回值说明

执行计算得到的结果(uint64_t类型)。

流水类型

PIPE_S

约束说明

当idx > 63或者idx < 0时,计算逻辑是:(idx % 64 + 64) % 64,得到结果位,设置结果位为1。

调用示例

C++
uint64_t bits = 0x0;
int64_t idx = 0x2;
uint64_t res = asc_set_nthbit(bits, idx); //结果res = 0x4

免责声明:本站内容由 asc-devkit 仓 master 分支自动编译生成,属于持续开发版本,可能存在缺陷,仅供预览与参考。如需稳定及商用资料,请查阅官方 昇腾社区