我使用long
类型来存储值,但它不存储超过10位的数字。
有没有办法制作一个扩展内存大小的新整数类型(例如12个字节或更多)?
答案 0 :(得分:1)
使用long long
(或unsigned long long
),其为64位,范围为-9,223,372,036,854,775,808至9,223,372,036,854,775,807。
http://en.cppreference.com/w/cpp/language/types#Range_of_values
答案 1 :(得分:0)
您可以编写arbitrary precision的实现,它允许您存储任意数量的数字,或使用Python 。你必须从零开始实现基本的算术,但是一旦你明白了它,它就不会太难了。
标准保证long long
长度至少为8个字节。如果你想要一个8字节的整数,试试这个:
#include <stdint.h>
int64_t a;
uint64_t b; // Unsigned 64-bit int
如果您的编译器抱怨它不知道int64_t
是什么,那么除非您实现AP,否则没有运气。
答案 2 :(得分:0)
您可以使用enter https://github.com/cerevra/int/tree/master/v2
它是C ++ 20的proposal,但它对现代c ++ 14兼容编译器也很有用