Я перевожу некоторые скриптовые скрипты с Python на R. Кажется, что Python обрабатывает очень большие целые числа намного лучше, чем R может изначально:
10593080468914978578954316149578855170502344604886137564370015851276669104055 >> 1
# 5296540234457489289477158074789427585251172302443068782185007925638334552027
Но мне известна библиотека gmp
для R, которая хорошо с ними справляется (в основном):
as.bigz("10593080468914978578954316149578855170502344604886137564370015851276669104055")
Для контекста, чтобы перевести эти сценарии, мне нужно использовать побитовые операции. Проблема в том, что эти bigz
объекты кодируются как необработанные значения, и поэтому я не могу использовать для них базовые побитовые функции, поскольку они несовместимы.
Найти обходной путь для сдвига битов влево и вправо - прямо вперед, но мне нужно кое-что, что будет:
- Выполните эквивалент
bitwAnd
и bitwOr
- Вкл.
bigz
значения
- БЕЗ потери точности.
Есть идеи?
Бонус: если вы можете дать интерпретацию bitwAnd
и bitwOr
в терминах базы 10, тогда это может сработать. Предпочтительно с некоторым примером кода на R, если нет, я могу обойти это.