[英]long for 12 digit number?
我试图使用12位long
的数字,但它说的是“整数常量对于”long“类型来说太大了”,我尝试用C ++和Processing(类似于Java)。 发生了什么,我应该用它做什么?
在C和C ++中(与Java不同), long
的大小是实现定义的。 有时它是64位,有时它是32.在后一种情况下,你只有足够的空间容纳9位小数。
要保证64位,可以使用long long
类型或固定宽度类型,如int64_t
。
如果要指定文字常量,则必须使用相应的类型说明符:
int i = 5;
unsigned i = 6U;
long int i = 12L;
unsigned long int i = 13UL;
long long int i = 143LL;
unsigned long long int i = 144ULL;
long double q = 0.33L;
wchar_t a = L'a';
尝试在msvc中使用long long
in gcc或__int64
。
我不知道在C ++中,但在C语言中,有一个名为<stdint.h>
的头文件,它可以携带具有所需位数的整数类型。
int8_t
int16_t
int32_t
int64_t
和他们的未签名对应物(uint8_t等)。
更新:标头在C ++中称为<cstdint>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.