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;