哪种变量类型可以容纳10 ^ 18的数字

时间:2012-01-24 13:01:26

标签: c

在我的电脑上,

int                     : 4 byte
long int                : 4 byte
long long int           : 8 byte
long double             : 12 byte
unsigned long double    : 12 byte
float                   : 4 byte

我应该使用哪种变量类型来保持数字大到10 ^ 18?

3 个答案:

答案 0 :(得分:8)

要获得精确的表示,您可以使用long long。它最多可容纳2 ^ 63-1,即> 10 ^ 18。

任何float类型也可以使用,但表示将是近似的。

答案 1 :(得分:2)

或者,如果您想在没有限制的情况下进行算术,请使用GMP

答案 2 :(得分:0)

要将10 ^ 18保持为整数,您需要一个64位宽的整数类型。这是因为intlong int等。人。各平台之间的大小各不相同,某些库提供的类型保证具有一定的大小。例如,在gnu C库中:

#include <stdint.h>

uint64_t myint;

或来自gnome的glib库:http://developer.gnome.org/glib/

#include <glib.h>

guint64 myint;