整数数据类型超过10位数

时间:2017-11-12 04:59:07

标签: c++ turbo-c

我使用long类型来存储值,但它不存储超过10位的数字。

有没有办法制作一个扩展内存大小的新整数类型(例如12个字节或更多)?

3 个答案:

答案 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兼容编译器也很有用