Giriş
Bu sınıf backend olarak gmp'yi kullanır. cpp_int ile kardeştir. gmp kütüphanesi ile linklemek gerekir. Şöyle yaparız
Şöyle yaparız. Parametre olarak verilen mpz_t verisinin kopyasını alır.
GNU Multiprecision bir C kütüphanesi. C++ olarak kullanmak istersek
mpz_init metodu
Şöyle yaparız.
Toplama için kullanılır. Şöyle yaparız.
Çarpma için kullanılır. Şöyle yaparız.
mpz_set metodu
Bir değişkeni bir başka değişkene atamak için kullanılır. Şöyle yaparız.
Bu sınıf backend olarak gmp'yi kullanır. cpp_int ile kardeştir. gmp kütüphanesi ile linklemek gerekir. Şöyle yaparız
g++ -std=c++11 -O2 -Wall -Wextra -pedantic main.cpp -o demo -lgmp
ConstructorŞöyle yaparız. Parametre olarak verilen mpz_t verisinin kopyasını alır.
mpz_t number = ...;
mp::mpz_int bigint (number);
Dolayısıyla şöyle yapabiliriz.typedef boost::multiprecision::mpz_int BigInt;
BigInt createNumber(const unsigned char* in, size_t length)
{
mpz_t number;
mpz_init2(number, length);
mpz_import(number, 1, 1, length, 1, 0, in);
BigInt bigint (number);
mpz_clear(number);
return bigint;
}
DiğerGNU Multiprecision bir C kütüphanesi. C++ olarak kullanmak istersek
<gmpxx.h>
vempz_class
olarak kullanırız.mpz_init metodu
Şöyle yaparız.
mpz_t number;
mpz_init (number);
mpz_add metoduToplama için kullanılır. Şöyle yaparız.
mpz_add(A,B,C); // A = B + C
mpz_mul metoduÇarpma için kullanılır. Şöyle yaparız.
mpz_mul_si(A, B, 2); //A = B * 2;
Bir değişkeni bir başka değişkene atamak için kullanılır. Şöyle yaparız.
mpz_t temp = ...
mpz_set(number,temp);
Hiç yorum yok:
Yorum Gönder