2013-08-05 7 views
2

ULLONG_MAX보다 큰 숫자를 저장하고 사용해야합니다.ULLONG_MAX보다 큰 숫자

이러한 값으로 산술 연산을 수행해야하므로 char**이라는 저장소는 옵션이 아닙니다.

이러한 경우 접두어 long을 추가로 동적으로 생성 할 수 있습니까?


감사합니다. 응답을 바탕으로 매우 도움이되었지만 최고의 성능 옵션에 대해서는 의구심이 듭니다. piokuc는 성능 링크를 인용하지만 명확하지 않습니다. 이번에 나는 GMP 또는 MPIR 사이에 있는데, 더 빠른 것이있다.

+1

예 : http://gmplib.org/ –

+0

성능에 집착하는 것 같습니다. * 빨리 만들기 전에 바로 잡으십시오. * 'long double'은 부호없는 long long보다 길 수 있습니다. – Jens

답변

4

당신은 64 비트 아키텍처에 GCC를 사용하는 경우, 같은 GMP 같은 멀티 정밀 도서관뿐만 아니라 당신도 What's the best (for speed) arbitrary-precision library for C++?

+0

나는 새 게시물을 벤 수 있다고 생각하지 않지만 성능에 대한 링크는 비효율적 인 것처럼 보입니다. GMP가 더 좋다는 벤치 마크 참조는 없습니다 ... MPIR은 무엇인가요? GPU 의도, 새로운 소프트웨어에 대한 더 나은 점은 무엇입니까? GMP 또는 MPIR? – ton

+1

나는 MPIR을 몰랐다. 그것은 기세가있는 활발한 프로젝트 인 것 같습니다. 사용자 커뮤니티와 기여자 커뮤니티가 있습니다. 분명히 그들은 GMP 위에 많은 것을 추가했습니다. 그것은 여러분의 요구 사항에 의존하고 설정합니다. 예를 들어 Linux를 사용하고 있다면 GMP가 이미 설치되어 있으므로 시작할 수 있습니다. 다른 한편으로는 임의의 정밀도를위한 기본 API를 가정합니다. 수학은 두 라이브러리에서 동일하거나 매우 비슷해야합니다. 따라서 공통 하위 집합으로 시작하는 경우 하나에서 다른 것으로 쉽게 전환 할 수 있어야합니다. – piokuc

3

를 참조 GMP처럼 임의 정밀도 연산 라이브러리 중 하나를 사용합니다 __int128 (documentation)을 사용할 수도 있습니다.

+2

clang은'__int128_t' (및'__uint128_t')도 지원합니다. –

+1

코드는 어떤 식으로도 이식 할 수 없지만 신속하고 지저분한 작업 만 필요한 경우 -이 코드는 – rabensky

+0

더러워요.하지만 성능은 어떻습니까? GMP보다 (__uint128 또는 __uint128_t) 더 낫습니까? – ton