【发布时间】:2011-05-05 01:53:39
【问题描述】:
假设 64 位整数 0x000000000000FFFF 将表示为
00000000 00000000 00000000 00000000
00000000 00000000 >11111111 11111111
如何找到最高有效设置位(标有 >)左侧的未设置位数量?
【问题讨论】:
-
您对 C、C# 或 C++ 感兴趣吗?理论相同,但语言不同。
-
既然我认为有一些小技巧可以做到这一点,而且它在所有语言中看起来都差不多,这并不重要。
-
谷歌“fxtbook.pdf”,第 1.6.1 章
-
如果此值始终为 0*1* 模式(全 0,后跟全 1),您可以采用多种捷径,是这样吗?
-
@jkerian 是的......那么它只是 64 - 位计数(值)。搜索 popcount 或 Debruijn 以获取有效的位数计数方法。
标签: c# c++ c 64-bit bit-manipulation