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