вектор от bool до gmp integer - PullRequest
       31

вектор от bool до gmp integer

0 голосов
/ 15 ноября 2018

Я немного посмотрел на mpz_import, но пока не уверен в его использовании (извиняюсь, я новичок в программировании на gmp).У меня есть std::vector<bool>, который в прошлом был моим довольно неэффективным способом борьбы с большими числами.Числа могут иногда превышать 32 или 64 бита, и у меня также есть меньшие числа, я надеюсь, что gmp справится с этим эффективно.Теперь я хочу очистить свой старый код и использовать вместо него gmp.

Я работаю в C ++.Поэтому мой вопрос в том, как правильно конвертировать vector<bool> в mpz_t.В моем приложении меня не волнует значение целого числа, поскольку два разных вектора (по их содержанию) представляют разные целые числа gmp.

1 Ответ

0 голосов
/ 16 ноября 2018

Я не думал, что mpz_import будет работать правильно.В итоге я использовал следующее:

mpz_t n; mpz_init(n);

for (size_t i = bignum.size(); i --> 0; )
  if (bignum[i]) mpz_setbit(n,i);
...