Skip to content
版 本

CountBitsCntSameAsSignBit

产 品 支 持 情 况

产 品是 否 支 持
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"

统 计int64_t类 型 数 值 的 二 进 制 表 示 中,从 最 高 数 值 位 开 始 与 符 号 位 相 同 的 连 续 比 特 位 的 个 数。

以 如 下CountBitsCntSameAsSignBit调 用 为 例:

C++
int64_t valueOut = AscendC::CountBitsCntSameAsSignBit(0x0100000000000020ULL); // 返 回6

其 计 算 结 果 如 下 图 所 示:

图 1 CountBitsCntSameAsSignBit计 算 示 意 图

CountBitsCntSameAsSignBit计算示意图

函 数 原 型

C++
__aicore__ inline int64_t CountBitsCntSameAsSignBit(int64_t valueIn)

参 数 说 明

表 1 参 数 说 明

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

返 回 值 说 明

返 回 从 最 高 数 值 位 开 始 与 符 号 位 相 同 的 连 续 比 特 位 的 个 数。

约 束 说 明

当 输 入 是-1(比 特 位 全1)或 者0(比 特 位 全0)时,返 回-1。

调 用 示 例

C++
int64_t valueOut;
int64_t valueIn = 0;                                    // 二 进 制 表 示 全 为0
valueOut = AscendC::CountBitsCntSameAsSignBit(valueIn); // 返 回-1

valueIn = 0xFFFFFFFFFFFFFFFFLL;                         // -1, 二 进 制 表 示 全 为1
valueOut = AscendC::CountBitsCntSameAsSignBit(valueIn); // 返 回-1

valueIn = 0x7FFFFFFFFFFFFFFFLL;                         // 正 数 最 大 值
valueOut = AscendC::CountBitsCntSameAsSignBit(valueIn); // 返 回0

valueIn = 0x8000000000000000LL;                         // 负 数 最 小 值
valueOut = AscendC::CountBitsCntSameAsSignBit(valueIn); // 返 回0

valueIn = 1;
valueOut = AscendC::CountBitsCntSameAsSignBit(valueIn); // 返 回62

valueIn = 0x00F0000000000000LL;
valueOut = AscendC::CountBitsCntSameAsSignBit(valueIn); // 返 回7

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