sha*_*oth 14
使用long long并且如果可能的话添加一个编译时断言,这个类型足够宽(像smth一样sizeof( long long ) >= 8).
double 是浮点数,而不是整数.
Pod*_*Pod 13
尝试:
http://gmplib.org/ big num.
http://mattmccutchen.net/bigint/ big int.
我没有使用过,但我在Java中使用过类似的东西.
小智 8
在C++中没有可移植的方法,因为该语言没有指定整数类型的大小(除了sizeof char为1).您需要查阅编译器文档.
我假设您的数字将适合64位.如果没有,那么你需要一个任意精度的算术库,如GMP.
从理论上讲,在C++中进行64位数学运算并不容易.实际上,大多数C++编译器也支持"老式"C头,而C99有一个很好的头文件名为stdint.h.
首先要做的是:
#include <stdint.h>
Run Code Online (Sandbox Code Playgroud)
然后使用类型int64_t(签名)和uint64_t(无符号).