【发布时间】:2017-11-09 14:53:24
【问题描述】:
我正在开发一个函数,该函数将 64 位整数作为参数并返回一个 64 位整数,并在末尾包含所有设置位。
01011001 -> 00001111 // examples
00010100 -> 00000011
我首先想到了以下算法:
nb_ones = countSetBit(x)
int64 res = 1
for i from 1 to nb_ones+1:
res |= (1 << i)
这里countSetBit就是defined here
还有什么更直接的吗?我正在使用 C++
【问题讨论】:
-
还有一个用于计数位tekpool.wordpress.com/2006/09/25/…
-
使用表格映射
countSetBit是一种很直接的方式
标签: c++ algorithm bit-manipulation