例如,我希望有一個位列表,可以在列表的一部分上執行數學運算。作爲數字的C++位列表
value: 864
as bits, pos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
as bits, value: 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0
如果我把位1到4和6到9我得到0,1,1,0,1,0,0,0(104)。然後,如果我加3,它就變成了0,1,1,0,1,0,1,1(107)。 (xor(data [n],data [n2])){}這個代碼看起來像這樣的事情,數據[n - 1] ==假;}等...
我甚至可以使用POD數組,但我想,C++是如此接近計算機的內部往往是沒有幫助,但在這裏,它可能允許這個操作非常迅速地完成。
類似於將值存儲在一個大的POD變量或數組中,然後將它們複製到另一個變量的內存中,以便在將它們複製回存儲器中的位置之前完成數學運算?
更好的情況下,例如加法運算符能否以某種方式將內存中的該位置作爲參數直接添加到數據存儲中間?
聽起來你想要一個'int'! – mydogisbox
1到4和6到9(1,2,3,4,6,7,8,9)只是一個例子,它可能是我需要能夠執行操作的任何段。 – alan2here
我不確定自己完全掌握了自己想要的內容,但根據我的理解,您最好的選擇是將您的數據複製到「int」中或者就地執行布爾邏輯。直接引用位數組的問題是數組中的特定位不總是與字節的開頭對齊。 – mydogisbox