Skip to content
版 本

GetSFFValue

产 品 支 持 情 况

产 品是 否 支 持
Ascend 950PR/Ascend 950DT
Atlas A3 训 练 系 列 产 品/Atlas A3 推 理 系 列 产 品
Atlas A2 训 练 系 列 产 品/Atlas A2 推 理 系 列 产 品
Atlas 200I/500 A2 推 理 产 品
x
Atlas 推 理 系 列 产 品AI Core
Atlas 推 理 系 列 产 品Vector Core
x
Atlas 训 练 系 列 产 品
x
Kirin X90
Kirin 9030

功 能 说 明

头 文 件 路 径 为:"basic_api/kernel_operator_scalar_intf.h"

查 找uint64_t类 型 数 值 的 二 进 制 表 示 中 从 最 低 有 效 位 开 始 的 首 个 指 定 比 特 值(0或1)的 位 置,如 果 没 找 到 则 返 回-1。

以 如 下GetSFFValue调 用 为 例:

C++
int64_t sffValue = AscendC::GetSFFValue<1>(0x1000000000000100ULL); // 返 回8

其 计 算 结 果 如 下 图 所 示:

图 1 使 用GetSFFValue查 找 从 最 低 有 效 位 开 始 首 个1的 位 置

使用GetSFFValue查找从最低有效位开始首个1的位置

函 数 原 型

C++
template <int countValue>
__aicore__ inline int64_t GetSFFValue(uint64_t valueIn)

参 数 说 明

表 1 模 板 参 数 说 明

参 数 名描 述
countValue指 定 要 查 找 的 比 特 值,取 值 为0或1。

表 2 参 数 说 明

参 数 名 称输 入/输 出描 述
valueIn输 入被 查 找 的 二 进 制 数 字。

返 回 值 说 明

返 回valueIn中 第 一 个0或1出 现 的 位 置。

约 束 说 明

调 用 示 例

C++
int64_t sffValue;
uint64_t valueIn = 0xFFFFFFFFFFFFFFFFULL;    // 二 进 制 表 示 全 为1
sffValue = AscendC::GetSFFValue<0>(valueIn); // 返 回-1

valueIn = 0;                                 // 二 进 制 表 示 全 为0
sffValue = AscendC::GetSFFValue<1>(valueIn); // 返 回-1

valueIn = 0xFF00ULL;
sffValue = AscendC::GetSFFValue<0>(valueIn); // 返 回0
sffValue = AscendC::GetSFFValue<1>(valueIn); // 返 回8

valueIn = 0x00FFULL;
sffValue = AscendC::GetSFFValue<0>(valueIn); // 返 回8
sffValue = AscendC::GetSFFValue<1>(valueIn); // 返 回0

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