【发布时间】:2012-01-26 00:17:12
【问题描述】:
在 C/C++ 中将特定整数从十进制转换为二进制时,找出特定整数有多少个二进制数字的最快方法是什么?
例如。 47(10) = 101111(2)
所以 47 有 6 位二进制表示。
【问题讨论】:
-
你基本上想compute ceil(log2(n)),这里已经问过了。
-
_BitScanReverse (MSVC) 或等效项。当要求最快的方法时,任何计算浮点对数的东西都会立即被取消资格。
-
最快的方式取决于处理器,但您可以在此处找到将使用 cpu 指令的 gcc 和 MS 解决方案:stackoverflow.com/questions/3272424/…
-
这不是 stackoverflow.com/questions/3272424/… 的副本。请求的函数在不同的位置转换。但是,它可能与 stackoverflow.com/questions/2721244/… 重复。