Я пытаюсь использовать подписанный long как массив из 1s и 0s. Мне нужно уметь назначать любой бит длинным или читать какой-либо бит за долгое время. Я продолжаю застревать, потому что я не могу читать или записывать бит знака, не испорчая остальные биты (из-за двух-дополнений). Я мог бы использовать логический массив для представления 1s и 0s, но это занимает слишком много памяти. Кто-нибудь знает способ индивидуального чтения и записи на любой бит в течение долгого времени? Или может кто-нибудь предложить эффективную альтернативу памяти?Чтение/запись бит длинного
1
A
ответ
1
Для этой проблемы BitSet является соответствующим классом библиотеки. Внутри он реализуется с использованием длинного и, если требуется, возрастает до использования BigInteger. Для получения дополнительной информации прочитайте javadoc.
Некоторые примеры кода в online java ide, демонстрирующие использование BitSet.
https://www.codiva.io/p/f6f0ee80-2ad3-4fb6-a197-aa1e549fba80
Смежные вопросы
- 1. unsigned int (32 бит) до беззнакового длинного длинного (64 бит)
- 2. Как проверить конкретный бит «длинного длинного междунар» в C++
- 3. старшие бит длинного умножения в Java?
- 4. Побитовый сдвиг для беззнакового длинного длинного типа
- 5. Как установить, очистить бит длинного длинного номера int в C/C++?
- 6. OpenCL набор и четкий бит без знака длинного длинного числа в ядре
- 7. Ошибка базы данных Sqlite из-за «длинного длинного int» (64 бит) типа данных
- 8. Java: Как заменить последние 16 бит длинного на короткий
- 9. Какой предел длинного длинного int?
- 10. Почему использование «длинного длинного» в C или C++ - это плохо?
- 11. Определения Ivar показывают кодировку «длинного» типа как кодировку «длинного длинного»
- 12. JavaScript: Побитовый сдвиг длинного длинного номера
- 13. Какова ошибка в умножении длинного длинного целого?
- 14. Как перебирать бинарные маски длинного длинного?
- 15. Postfix LL для длинного длинного типа
- 16. Функция хэша для пары длинного длинного?
- 17. Явный эквивалент невыполненного длинного длинного не BigInteger?
- 18. Как отделить остаток от длинного длинного номера?
- 19. значения длинного длинного int неверно напечатаны
- 20. Qt: от беззнакового длинного длинного до QJsonObject
- 21. получить значение abs длинного длинного целого
- 22. Преобразование длинного длинного значения в NSTimerInterval
- 23. Преобразование бит-бит в один бит
- 24. Бит-бит C/C++ или бит-вектор
- 25. 24-бит-1 бит-бит-преобразование
- 26. бит бит И
- 27. Бит Маскировка бит регистра
- 28. счетчик бит бит
- 29. 16 бит бит глубина
- 30. C бит бит беспорядок
Вы должны быть более конкретной информацией о трудности вы имеете. Для эффективной альтернативы посмотрите на ['BitSet'] на Java (https://docs.oracle.com/javase/7/docs/api/java/util/BitSet.html). – shmosel
Используйте класс бит-набора, как это предложено в предыдущих комментариях –
Чтение/запись знакового бита абсолютно нормально, оно ничего не испортит. Дополнение второго не имеет значения. Конечно, вы должны ожидать, что значение будет напечатано как отрицательное, если вы установите знак, но это не влияет на фактические биты. – harold