1
我試圖使用一個有符號的long作爲1和0的數組。我需要能夠分配任何位,或長時間讀取任何位。我一直陷入困境,因爲我似乎無法讀取或寫入符號位而沒有弄亂其餘的位(由於二進制補碼)。我可以使用布爾數組來表示1和0,但佔用太多的內存。有沒有人知道一種方法來長期單獨讀取和寫入任何位?或者任何人都可以建議一個超級高效的內存選擇?冗長的讀/寫位
我試圖使用一個有符號的long作爲1和0的數組。我需要能夠分配任何位,或長時間讀取任何位。我一直陷入困境,因爲我似乎無法讀取或寫入符號位而沒有弄亂其餘的位(由於二進制補碼)。我可以使用布爾數組來表示1和0,但佔用太多的內存。有沒有人知道一種方法來長期單獨讀取和寫入任何位?或者任何人都可以建議一個超級高效的內存選擇?冗長的讀/寫位
對於這個問題,BitSet是合適的庫類。在內部,它使用long來實現,如果需要的話,可以使用BigInteger。欲瞭解更多信息,請閱讀javadoc。
online java ide中的一些示例代碼演示了BitSet的使用。
https://www.codiva.io/p/f6f0ee80-2ad3-4fb6-a197-aa1e549fba80
您需要更具體地瞭解您遇到的困難。要獲得有效的替代方法,請查看Java的['BitSet'](https://docs.oracle.com/javase/7/docs/api/java/util/BitSet.html)。 – shmosel
使用前面的評論中建議的位集合類 –
讀取/寫入符號位是絕對好的,它不會弄亂任何東西。兩個補碼並不重要。當然,如果您設置了符號,您應該期望將該值打印爲負值,但這不會影響實際的位數。 – harold