관리 메뉴

일서방

GMP(GNU Multiple Precision Arithmetic Library) 본문

IT공부/C++로 만드는 HTTPS 서비스

GMP(GNU Multiple Precision Arithmetic Library)

0asis 2025. 9. 24. 14:29

■GNU Multiprecision Library(GMP)

 

- GMP : 매우 큰 정수 , 유리수 , 실수를 다룰 수 있는 라이브러리(암호학 , 수론 , 정수론 계산 등에 많이 사용.)

- mpz_t : GMP의 C API에서 큰 정수를 표현하는 기본타입

- mpz_class : C++ 환경에서 mpz_t를 객체 지향적으로 다루기 쉽게 만든 클래스

   . 내부적으로 mpz_t를 캡슐화

   . 연산자 오버로딩 + , - , * , / , % 등 지원

   . C++ 스타일 문법으로 큰 정수를 직관적으로 처리 가능

 

 

EX) 

#include <gmpxx.h>

#include <iostream>

using name space std;

 

#include <gmpxx.h>
#include <iostream>
using namespace std;

int main() {
    mpz_class a = 12345678901234567890_mpz; // 큰 수 초기화
    mpz_class b = 98765432109876543210_mpz;

    mpz_class sum = a + b;
    mpz_class mul = a * b;

    cout << "Sum: " << sum.get_str() << endl;
    cout << "Mul: " << mul.get_str() << endl;

    return 0;
}

 

 

● mpz_class = GMP의 C++용 큰 정수(Big Integer) 클래스

● mpz_t (C API)보다 쓰기 편리하고 , 연산자 오버로딩으로 직관적 코드 작성 가능

● 암호학(예: RSA , Difiie-Hellman), 수학 연산 , 금융 계산 등 큰 수가 필요한 분야에서 자주 쓰임.

'IT공부 > C++로 만드는 HTTPS 서비스' 카테고리의 다른 글

디피헬만 알고리즘  (0) 2025.09.17
암호학의 기초  (0) 2025.09.15