C++에서 unsigned long long 범위를 벗어나는 정수 자료형을 저장하려면 어떻게 해야하나요?

canuyes의 이미지

본문의 제목과 같습니다.

unsigned long long 범위 이상의 양의 정수를 저장하여 연산해야 할 일이 있는데
이런 수를 저장할 변수를 만들려면 어떻게 해야하나요?

gilgil의 이미지

64bit integer 형을 사용하면 됩니다.

[windows]
signed 64bit integer : __int64
unsigned 64bit integer: unsigned __int64

[linux]
signed 64bit integer : long long
unsigned 64bit integer: unsigned long long

64bit 범위를 넘어 서는 숫자는 BigInt 클래스를 사용하시기 바랍니다.

https://mattmccutchen.net/bigint/

realcow의 이미지


최근에 boost library에 추가된 Multiprecision도 고려해보세요.

http://www.boost.org/doc/libs/1_53_0/libs/multiprecision/doc/html/index.html

minspapa의 이미지

double로 처리하시고, int로 결과를 캐스팅 하시는 것도 방법이 아닐까..합니다..