0
A
回答
1
我听说有一些处理器,获取整数的最高位是单个指令,但我不能命名哪些处理器。即使有这样的处理器,你也只能得到不是任意二进制数的整数的最高位,这在你的问题中似乎就是这种情况。
对于较长的位序列,我认为你没有比检查每一位更好的选择,而对于较短的序列,你可以预先计算最高位值(例如有一个数组存储所有数字的最高位)到32768),而不是简单地从该数组中获得一个值,以获得所有高达15位序列所需的答案。
+1
a)在x86汇编中,'bsr'指令将检测第一个设置位,从最重要的位开始。在POSIX中,'ffs()'和'fls()'很可能会翻译成这样的指令,或者,如果不存在,编译器将使用De Bruijn序列发出一个非天真的软件实现。 b)对于较长的位序列,可以连续对每个单词应用此操作,确保最后一个单词用零填充。 –
相关问题
- 1. Android - 获取位置只有一次
- 2. 圆号只有第一位小数位
- 3. RecyclerView操作只能编辑第一个位置上的工作?
- 4. 位操作:获取一个数字中的单个位
- 5. 有效位图操作
- 6. 只使用移位操作从一个字节中获取右边的四位
- 7. 获取第一行的位置端
- 8. 如何获取字符串中第一个字母的位置
- 9. 只有一个小数点位置
- 10. 有位操作
- 11. String#include?只检查第一个位置
- 12. 获取一个位的位置,如果它被设置
- 13. 从一个地理位置的距离获取位置
- 14. 字符串操作 - 在字符的最后一个位置后获取值
- 15. Javascript的第一个字的位置的位置
- 16. 获取一个MapView的MKCircleView半径的所有位置坐标
- 17. 拇指手柄位置只有一次
- 18. 将现有的列放置在mysql的第一个位置
- 19. 根据另一个操作字符串中的特定位置
- 20. 获取IP位置和操作系统
- 21. 获取操作项目位置
- 22. 确定一个字符串是否是一个有效的地理位置
- 23. 核心位置第一点无效
- 24. Python字符串操作。添加一个字符到第五位
- 25. 在mysql中获取一个有条件的位置
- 26. 从位置获取位置
- 27. 位置操作$没有在PHP工作
- 28. 取消设置一个字中最高有效位(int32)[C]
- 29. NativeScript ListView。获取第一个可见项目的位置iOS
- 30. 位操作,以获得32位的int
1.是的,2.使用查找表:)这些限制是显而易见的:查找表需要是巨大的。 – dasblinkenlight