我正在尝试将long
用于12位数,但是它说“整数常量对于”long“类型来说太大了”,我尝试使用C ++和Processing(类似于Java)。发生了什么,我应该用它做什么?
答案 0 :(得分:5)
在C和C ++中(与Java不同),long
的大小是实现定义的。有时它是64位,有时是32位。在后一种情况下,你只有足够的空间容纳9位小数。
要保证64位,您可以使用long long
类型,也可以使用int64_t
等固定宽度类型。
答案 1 :(得分:3)
如果要指定文字常量,则必须使用相应的类型说明符:
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';
答案 2 :(得分:1)
尝试在gcc中使用long long
或在msvc中使用__int64
。
答案 3 :(得分:1)
我不知道在C ++中,但是在C中,有一个名为<stdint.h>
的头文件,它可以携带具有你想要的位数的整数类型。
int8_t
int16_t
int32_t
int64_t
和他们的无符号对应物(uint8_t等)。
更新:标题在C ++中被称为<cstdint>