![]() |
1
4
适用于每个位数。 |
![]() |
2
7
可以使用32个元素构建查阅表格:0、1、2、2、3等。 |
![]() |
3
6
这实际上与计算前导0的数目是相同的操作。有些CPU有这样的指令,否则您可以使用一些技巧,如 Hacker's Delight . 它也相当于四舍五入到最接近的2次方,同样,您可以在 高效程序的奥秘 ,例如
|
![]() |
4
2
如果您不想使用表查找,我将使用
|
![]() |
5
0
Stanford Bit Twiddling Hacks 有很多关于如何完成这一点的例子。 |
![]() |
6
0
如果您的意思是从右边第五位的任何位的值(五位值的“最左边”),那么:
如果您指的是最左边的1位的位置:
最右边的位的位置是0,5位值的最左边的位是4,如果所有的位都为零,则为5。 注意:这不是时钟周期中最有效的解决方案。希望这是一个相当清晰和有教育意义的计划。:) |
![]() |
7
0
要清除最高有效位以下的所有位:
要清除最低有效位以上的所有位:
要获取字节中唯一设置位的位置,请执行以下操作:
在libkern.h中有一个
|
![]() |
8
0
我不知道目标C,但这就是我在C中的方法。 功率(2,int(log2(number)) 这应该为您提供最左边的1位值。 在使用此解决方案之前,请参阅下面的StephenCanon评论。 |
![]() |
9
0
用VC++看一下 _ BitscanReverse/(64)英寸 |
![]() |
Martin sku · 在目标C中打印时间 3 年前 |
![]() |
Vinod prajapat · 如何更新数组的最后一个元素? 3 年前 |
![]() |
subin272 · 修复iOS中的多个按钮单击事件? 7 年前 |
![]() |
James Chan · 如何使用锁定/解锁? 7 年前 |
![]() |
Josh F. · NSBundle mainBundle返回零 7 年前 |