我現在爲8字節塊創建了一個64點陣列。 如何實現檢查這些斑點是否被使用的位圖? 我創建陣列與此uint64_t中陣列[64]使用位圖控制陣列
Q
使用位圖控制陣列
-3
A
回答
-1
假設你編號的位0 64spots .. 4095
接着的6位表示中的索引,位圖字節和6位表示中的位數組元素。
,如果你有
unsigned int bit ;
然後
unsigned int index = (bit >> 6) & 63 ;
uint64_t mask = 1 << (bit & 63) ;
if (array [index] & mask)
// bit is set
0
因爲這是(無標記)作業,我不會放棄的代碼,但是:
第一:什麼是位圖?它單獨使用變量中各個位的值,而不是將整個值解釋。因此,如果您需要一個位圖來指示正在使用64個塊中的哪一個,那麼您將需要64位 - 64位類型對此會很好。如果你需要一個「塊」中的每個單獨字節的位圖,這個想法是一樣的,但顯然你可以使用更小尺寸的映射(一個字節位圖)和更多的映射。
然後,您需要分別訪問每個位 - 有按位運算符可以很容易地進行訪問。位0將指示塊0的狀態(未設置,或者0 =未使用,1或者設置=使用),位63將指示塊63的狀態。在具有塊的位的值之間按位與' d要檢查和位圖,將返回是否正在使用該塊。通過打開計算器程序並將其設置爲「程序員」模式,可以很容易地查看數據類型中的位。
設置一個位很簡單 - 您可以按位或設置位。如果您不熟悉它,則取消設置會有點棘手,但一旦您掌握了按位操作的概念,就很容易。
相關問題
- 1. 合併陣列與陣列位置的控制
- 2. 使用相同的陣列控制器
- 3. 使用「的控制陣列」上的String.Format()
- 4. 旋轉位圖使用陣列
- 5. 添加視圖控制器陣列
- 6. 使用控制陣列來洗牌圖片盒
- 7. 使用谷歌圖表繪製陣列
- 8. 在陣列控制器
- 9. Emberjs陣列控制器
- 10. html和PHP陣列控制
- 11. 轉換陣列爲位圖
- 12. MediaFoundation,位圖陣列,以MP4
- 13. 從陣列定位圖像
- 14. Android位圖字節陣列
- 15. 安卓:利用矩陣繪製位圖
- 16. 在as3中用位圖數據(帶有矩陣)繪製位圖
- 17. 在Java中打印特定的陣列位置(控制檯)
- 18. 爲什麼我能夠在控制器中使用控制器陣列?
- 19. 繪製WebBrowser控件位圖
- 20. 使用拼圖陣列
- 21. Android更新陣列位圖/隊列
- 22. 迷你圖定製陣列
- 23. 使用兩個不同視圖控制器和陣列的框架
- 24. LED矩陣使用AVR控制器
- 25. 納克重複 - 當陣列在控制器改變不更新視圖,使用控制器作爲語法
- 26. 在不同的窗口中使用陣列控制器
- 27. 如何在陣列上使用ForEach控制器?
- 28. 使用返回從$範圍功能陣列控制器
- 29. 在angular2中使用單選按鈕控制陣列
- 30. 錯誤而使用委託的陣列控制檯程序
array []保存數據 - 位掩碼將與之分開,指示array []中的哪些值保存有效數據。所以掩碼不應該與array []按位進行AND操作。然而,我並沒有讓你失望。 – 2014-10-20 17:31:53