Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 哪种变量类型可以容纳10^18这样大的数字_C - Fatal编程技术网

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

C 哪种变量类型可以容纳10^18这样大的数字,c,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?要精确表示,可以使用long。它

在我的电脑上

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?

要精确表示,可以使用
long
。它最多可容纳2^63-1个盒子,即>10^18


任何
浮点
类型都可以工作,但表示形式都是近似的。

或者如果您想不受限制地进行算术运算,请使用

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

#include <stdint.h>

uint64_t myint;
#包括
uint64_t myint;
或者在gnome的glib库中:

#包括
金氏64 myint;

您可能应该指定是整数还是浮点数。谢谢,这是我第一次做的。但当我试图解析一个内容为
8183416599999991999999119999893899965016999984799991211499999837的字符串时,我得到了错误的数字。我读到的是:
sscanf(行,“%lld%lld%lld%lld%lld%lld%lld%lld”、&N、&P1、&W1、&M、&K、&a、&B、&C、&D)@mustafa:在这里工作非常好。您可能想为您的问题打开一个新的问题。
long
肯定会在示例中的平台上工作,但我认为目标是找到在任何平台上工作的最小值。
#include <glib.h>

guint64 myint;